From: Dave Rolsky Date: Thu, 23 Oct 2008 17:07:10 +0000 (+0000) Subject: Need to override create_child_type for Class TC's so that they _do X-Git-Tag: 0.60~10 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=97534a9b1e9ea766e7e2c354d1cb16382e16856d;p=gitmo%2FMoose.git Need to override create_child_type for Class TC's so that they _do not_ return a new Class TC. Confusing, but correct(ish). --- diff --git a/lib/Moose/Meta/TypeConstraint/Class.pm b/lib/Moose/Meta/TypeConstraint/Class.pm index c65143b..ddb3500 100644 --- a/lib/Moose/Meta/TypeConstraint/Class.pm +++ b/lib/Moose/Meta/TypeConstraint/Class.pm @@ -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 +=item B + =back =head1 BUGS