support class_has with no isa, with test
Rafael Kitover [Thu, 5 Aug 2010 03:09:54 +0000 (23:09 -0400)]
Changes
lib/MooseX/AlwaysCoerce.pm
t/01-basic.t

diff --git a/Changes b/Changes
index 9ef04c8..9164c45 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for MooseX-AlwaysCoerce
 
+    - support class_has with no isa (Karen Etheridge)
+
 0.06  2010-07-28 00:58:50
     - Use modern Moose APIs, to avoid warnings with Moose 1.09 (Karen Etheridge)
 
index 2738638..3b1893c 100644 (file)
@@ -77,8 +77,10 @@ Use C<< coerce => 0 >> to disable a coercion explicitly.
         my $self = shift;
         my ($what, %opts) = @_;
 
+        return unless exists $opts{isa};
+
         my $type = Moose::Util::TypeConstraints::find_or_parse_type_constraint($opts{isa});
-        $opts{coerce} = 1 if $type and not exists $opts{coerce} and $type->has_coercion;
+        $opts{coerce} = 1 if not exists $opts{coerce} and $type->has_coercion;
 
         $self->$next($what, %opts);
     };
index b203699..f6d017f 100644 (file)
@@ -28,6 +28,8 @@ use Test::NoWarnings;
     has uncoerced_attr => (is => 'rw', isa => 'Uncoerced');
 
     class_has uncoerced_class_attr => (is => 'rw', isa => 'Uncoerced');
+
+    class_has untyped_class_attr => (is => 'rw');
 }
 
 ok( (my $instance = MyClass->new), 'instance' );