From: Rafael Kitover Date: Thu, 5 Aug 2010 03:09:54 +0000 (-0400) Subject: support class_has with no isa, with test X-Git-Tag: 0.07~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-AlwaysCoerce.git;a=commitdiff_plain;h=57d1fb144c7288216e33842337a21394703170b5 support class_has with no isa, with test --- diff --git a/Changes b/Changes index 9ef04c8..9164c45 100644 --- 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) diff --git a/lib/MooseX/AlwaysCoerce.pm b/lib/MooseX/AlwaysCoerce.pm index 2738638..3b1893c 100644 --- a/lib/MooseX/AlwaysCoerce.pm +++ b/lib/MooseX/AlwaysCoerce.pm @@ -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); }; diff --git a/t/01-basic.t b/t/01-basic.t index b203699..f6d017f 100644 --- a/t/01-basic.t +++ b/t/01-basic.t @@ -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' );