Need to override create_child_type for Class TC's so that they _do
Dave Rolsky [Thu, 23 Oct 2008 17:07:10 +0000 (17:07 +0000)]
not_ return a new Class TC. Confusing, but correct(ish).

lib/Moose/Meta/TypeConstraint/Class.pm

index c65143b..ddb3500 100644 (file)
@@ -97,6 +97,15 @@ sub is_subtype_of {
     }
 }
 
+# This is a bit counter-intuitive, but a child type of a Class type
+# constraint is not itself a Class type constraint (it has no class
+# attribute). This whole create_child_type thing needs some changing
+# though, probably making MMC->new a factory or something.
+sub create_child_type {
+    my ($self, %opts) = @_;
+    return Moose::Meta::TypeConstraint->new(%opts, parent => $self);
+}
+
 1;
 
 __END__
@@ -131,6 +140,8 @@ Return all the parent types, corresponding to the parent classes.
 
 =item B<meta>
 
+=item B<create_child_type>
+
 =back
 
 =head1 BUGS