Always load Mouse::Util first, which will be load Mouse::XS in the future
[gitmo/Mouse.git] / lib / Mouse / Meta / TypeConstraint.pm
index 51b0867..916acc1 100644 (file)
@@ -1,11 +1,14 @@
 package Mouse::Meta::TypeConstraint;
 use strict;
 use warnings;
-use Carp ();
 
 use overload '""'     => sub { shift->{name} },   # stringify to tc name
              fallback => 1;
 
+use Carp ();
+
+use Mouse::Util ();
+
 sub new {
     my $class = shift;
     my %args = @_;
@@ -69,6 +72,13 @@ sub get_message {
     }
 }
 
+sub is_a_type_of{
+    my($self, $tc_name) = @_;
+
+    return $self->name eq $tc_name
+        || $self->name =~ /\A $tc_name \[/xms; # "ArrayRef" =~ "ArrayRef[Foo]"
+}
+
 1;
 __END__