In maybe_type, make a proper maybe type by parameterizing the Maybe Parameterizable...
Dave Rolsky [Wed, 21 Jan 2009 23:18:24 +0000 (23:18 +0000)]
lib/Moose/Util/TypeConstraints.pm

index e71541c..55cbc7b 100644 (file)
@@ -306,16 +306,7 @@ sub maybe_type {
     my ($type_parameter) = @_;
 
     register_type_constraint(
-      # $REGISTRY->get_type_constraint('Maybe')
-      #  ->generate_constraint_for($type_parameter)
-      Moose::Meta::TypeConstraint->new(
-          parent               => find_type_constraint('Item'),
-          constraint           => sub {
-              my $check = $type_parameter->_compiled_type_constraint;
-              return 1 if not(defined($_)) || $check->($_);
-              return;
-          }
-      )
+        $REGISTRY->get_type_constraint('Maybe')->parameterize($type_parameter)
     );
 }