X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FUtil%2FTypeConstraints.pm;h=bf70f32dc90f3808890a52e7f83e8498c12b583a;hb=cdacfaf381f5ad01b37a6ac069d82fcef38d2eaa;hp=daef71841783bbf03685fbbaaa077fe8a2f26d40;hpb=b2f3973a00e111a7b3a0115e4431d30663368ac3;p=gitmo%2FMoose.git diff --git a/lib/Moose/Util/TypeConstraints.pm b/lib/Moose/Util/TypeConstraints.pm index daef718..bf70f32 100644 --- a/lib/Moose/Util/TypeConstraints.pm +++ b/lib/Moose/Util/TypeConstraints.pm @@ -362,19 +362,20 @@ sub maybe_type { } sub duck_type { - my ($type_name, @methods) = @_; + my ( $type_name, @methods ) = @_; if ( ref $type_name eq 'ARRAY' && !@methods ) { - @methods = @$type_name; + @methods = @$type_name; $type_name = undef; } register_type_constraint( _create_type_constraint( - $type_name, 'Object', + $type_name, + 'Object', sub { my $obj = $_; - my @missing_methods = grep { !$obj->can($_) } @methods; - return ! scalar @missing_methods; + for (@methods) { return 0 unless $obj->can($_) } + return 1; }, sub { my $obj = $_;