Set correct parents for enum_type and duck_type
gfx [Mon, 8 Mar 2010 07:36:10 +0000 (16:36 +0900)]
lib/Mouse/Util/TypeConstraints.pm

index 3915dc7..7073a4d 100644 (file)
@@ -227,7 +227,8 @@ sub duck_type {
     @methods = (@_ == 1 && ref($_[0]) eq 'ARRAY') ? @{$_[0]} : @_;
 
     # DuckType
-    return _create_type 'type', $name => (
+    return _create_type 'subtype', $name => (
+        as           => 'Object',
         optimized_as => Mouse::Util::generate_can_predicate_for(\@methods),
     );
 }
@@ -242,7 +243,8 @@ sub enum {
     %valid = map{ $_ => undef } (@_ == 1 && ref($_[0]) eq 'ARRAY' ? @{$_[0]} : @_);
 
     # EnumType
-    return _create_type 'type', $name => (
+    return _create_type 'subtype', $name => (
+        as            => 'Str',
         optimized_as  => sub{ defined($_[0]) && !ref($_[0]) && exists $valid{$_[0]} },
     );
 }