bump version to 0.65
[gitmo/Moose.git] / lib / Moose / Meta / TypeConstraint / Parameterized.pm
index 680b6dc..ec363ab 100644 (file)
@@ -5,10 +5,11 @@ use warnings;
 use metaclass;
 
 use Scalar::Util 'blessed';
-use Carp         'confess';
 use Moose::Util::TypeConstraints;
+use Moose::Meta::TypeConstraint::Parameterizable;
 
-our $VERSION   = '0.54';
+our $VERSION   = '0.65';
+$VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
 use base 'Moose::Meta::TypeConstraint';
@@ -36,12 +37,12 @@ sub compile_type_constraint {
     my $self = shift;
     
     ($self->has_type_parameter)
-        || confess "You cannot create a Higher Order type without a type parameter";
+        || Moose->throw_error("You cannot create a Higher Order type without a type parameter");
         
     my $type_parameter = $self->type_parameter;
     
     (blessed $type_parameter && $type_parameter->isa('Moose::Meta::TypeConstraint'))
-        || confess "The type parameter must be a Moose meta type";
+        || Moose->throw_error("The type parameter must be a Moose meta type");
 
     foreach my $type (Moose::Util::TypeConstraints::get_all_parameterizable_types()) {
         if (my $constraint = $type->generate_constraint_for($self)) {
@@ -52,8 +53,13 @@ sub compile_type_constraint {
     
     # if we get here, then we couldn't 
     # find a way to parameterize this type
-    confess "The " . $self->name . " constraint cannot be used, because " 
-          . $self->parent->name . " doesn't subtype or coerce from a parameterizable type.";
+    Moose->throw_error("The " . $self->name . " constraint cannot be used, because " 
+          . $self->parent->name . " doesn't subtype or coerce from a parameterizable type.");
+}
+
+sub create_child_type {
+    my ($self, %opts) = @_;
+    return Moose::Meta::TypeConstraint::Parameterizable->new(%opts, parent=>$self);
 }
 
 1;
@@ -81,6 +87,8 @@ Moose::Meta::TypeConstraint::Parameterized - Higher Order type constraints for M
 
 =item B<equals>
 
+=item B<create_child_type>
+
 =back
 
 =head1 BUGS