No duplicate check for role_type()
[gitmo/Mouse.git] / lib / Mouse / Util / TypeConstraints.pm
index c6917fd..bc32489 100644 (file)
@@ -4,8 +4,7 @@ use Mouse::Util; # enables strict and warnings
 use Mouse::Meta::TypeConstraint;
 use Mouse::Exporter;
 
-use Carp         ();
-use Scalar::Util ();
+use Carp ();
 
 Mouse::Exporter->setup_import_methods(
     as_is => [qw(
@@ -186,7 +185,7 @@ sub subtype {
 sub coerce { # coerce $type, from $from, via { ... }, ...
     my $type_name = shift;
     my $type = find_type_constraint($type_name)
-        or Carp::croak("Cannot find type '$type_name', perhaps you forgot to load it.");
+        or Carp::croak("Cannot find type '$type_name', perhaps you forgot to load it");
 
     $type->_add_type_coercions(@_);
     return;
@@ -212,8 +211,7 @@ sub role_type {
     return subtype $name => (
         as           => 'Object',
         optimized_as => sub {
-            return Scalar::Util::blessed($_[0])
-                && Mouse::Util::does_role($_[0], $role);
+            return Mouse::Util::does_role($_[0], $role);
         },
         role         => $role,
     );
@@ -383,10 +381,7 @@ sub register_type_constraint {
     my($constraint) = @_;
     Carp::croak("No type supplied / type is not a valid type constraint")
         unless Mouse::Util::is_a_type_constraint($constraint);
-    my $name = $constraint->name;
-    Carp::croak("Can't register an unnamed type constraint")
-        unless defined $name;
-    return $TYPE{$name} = $constraint;
+    return $TYPE{$constraint->name} = $constraint;
 }
 
 sub find_or_parse_type_constraint {
@@ -434,7 +429,7 @@ Mouse::Util::TypeConstraints - Type constraint system for Mouse
 
 =head1 VERSION
 
-This document describes Mouse version 0.82
+This document describes Mouse version 0.85
 
 =head2 SYNOPSIS