X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FMethod%2FConstructor.pm;h=1d55a975aa9ef715681602734fc7a35e43d7f18c;hb=6cc6c673f9175314c395c60b894322e6f584d963;hp=f6287db6647d1ab20c47cc00385dc593f73f4d33;hpb=0bfc7290b1efb0dcbe6fcff1461ef9beea5a3f07;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Method/Constructor.pm b/lib/Mouse/Meta/Method/Constructor.pm index f6287db..1d55a97 100644 --- a/lib/Mouse/Meta/Method/Constructor.pm +++ b/lib/Mouse/Meta/Method/Constructor.pm @@ -1,7 +1,7 @@ package Mouse::Meta::Method::Constructor; use Mouse::Util; # enables strict and warnings -sub _generate_constructor_method { +sub _generate_constructor { my ($class, $metaclass, $args) = @_; my $associated_metaclass_name = $metaclass->name; @@ -38,9 +38,7 @@ sub _generate_constructor_method { $@; }; die $e if $e; - - $metaclass->add_method($args->{constructor_name} => $code); - return; + return $code; } sub _generate_processattrs { @@ -85,7 +83,7 @@ sub _generate_processattrs { $code .= "if (exists $value) {\n"; if($need_coercion){ - $value = "$instance_slot = $constraint_var->coerce($value);\n"; + $value = "$constraint_var->coerce($value)"; } $code .= "$instance_slot = $value;\n"; @@ -93,7 +91,7 @@ sub _generate_processattrs { if ($attr->has_trigger) { $has_triggers++; - $code .= "push \@triggers, [$attr_var\->{trigger}, $value];\n"; + $code .= "push \@triggers, [$attr_var\->{trigger}, $instance_slot];\n"; } $code .= "\n} else {\n"; @@ -185,3 +183,4 @@ sub _generate_BUILDALL { } 1; +__END__