bump version and update changes for next release
[gitmo/Moose.git] / lib / Moose / Meta / TypeConstraint / Union.pm
index 77a6917..c61d8bf 100644 (file)
@@ -7,7 +7,7 @@ use metaclass;
 
 use Moose::Meta::TypeCoercion::Union;
 
-our $VERSION   = '0.59';
+our $VERSION   = '0.67';
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
@@ -100,6 +100,29 @@ sub is_subtype_of {
     return 0;
 }
 
+sub create_child_type {
+    my ( $self, %opts ) = @_;
+
+    my $constraint
+        = Moose::Meta::TypeConstraint->new( %opts, parent => $self );
+
+    # if we have a type constraint union, and no
+    # type check, this means we are just aliasing
+    # the union constraint, which means we need to
+    # handle this differently.
+    # - SL
+    if ( not( defined $opts{constraint} )
+        && $self->has_coercion ) {
+        $constraint->coercion(
+            Moose::Meta::TypeCoercion::Union->new(
+                type_constraint => $self,
+            )
+        );
+    }
+
+    return $constraint;
+}
+
 1;
 
 __END__
@@ -182,6 +205,8 @@ anyway. They are here for completeness.
 
 =item B<has_hand_optimized_type_constraint>
 
+=item B<create_child_type>
+
 =back
 
 =head1 BUGS
@@ -196,7 +221,7 @@ Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>