X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FMethod%2FConstructor.pm;h=1dd8b3a16a3c96a3adb26398da8190b56360a3fd;hp=596dccfdef3e9a3d82ec69148f286c9f646003d2;hb=3b89ea918d7ff7162f2bbeecf24df818148d5315;hpb=b898bac83890927c156ceb14e4921b38dc1068be diff --git a/lib/Mouse/Meta/Method/Constructor.pm b/lib/Mouse/Meta/Method/Constructor.pm index 596dccf..1dd8b3a 100644 --- a/lib/Mouse/Meta/Method/Constructor.pm +++ b/lib/Mouse/Meta/Method/Constructor.pm @@ -12,7 +12,8 @@ sub generate_constructor_method_inline { my $buildargs = $class->_generate_BUILDARGS($metaclass); my $processattrs = $class->_generate_processattrs($metaclass, \@attrs); - my @compiled_constraints = map { $_ ? $_->{_compiled_type_constraint} : undef } map { $_->{type_constraint} } @attrs; + my @compiled_constraints = map { $_->_compiled_type_constraint } + map { $_->{type_constraint} ? $_->{type_constraint} : () } @attrs; my $code = <<"..."; sub { @@ -57,11 +58,7 @@ sub _generate_processattrs { } if ($attr->has_type_constraint) { - if ($attr->type_constraint->{_compiled_type_constraint}) { - $code .= "unless (\$compiled_constraints[$index](\$value)) {"; - } else { - $code .= "unless (\$attrs[$index]->{type_constraint}->check(\$value)) {"; - } + $code .= "unless (\$compiled_constraints[$index](\$value)) {"; $code .= " \$attrs[$index]->verify_type_constraint_error( q{$key}, \$value, \$attrs[$index]->type_constraint