package Mouse::Meta::Method::Constructor;
use Mouse::Util qw(:meta); # enables strict and warnings
-use constant _MOUSE_DEBUG => !!$ENV{MOUSE_DEBUG};
+use constant _MOUSE_DEBUG => $ENV{MOUSE_DEBUG} ? 1 : 0;
sub _inline_slot{
my(undef, $self_var, $attr_name) = @_;
my $buildall = $class->_generate_BUILDALL($metaclass);
my $buildargs = $class->_generate_BUILDARGS($metaclass);
- my $initializer = $metaclass->{_initialize_object} ||= do {
+ my $initializer = $metaclass->{_mouse_cache}{_initialize_object} ||=
$class->_generate_initialize_object($metaclass);
- };
my $source = sprintf(<<'EOT', __FILE__, $metaclass->name, $buildargs, $buildall);
#line 1 "%s"
package %s;
$post_process .= "\$checks[$index]->($instance_slot)\n";
$post_process .= " or $attr_var->_throw_type_constraint_error($instance_slot, $constraint_var);\n";
}
- if($is_weak_ref){
- $post_process = "Scalar::Util::weaken($instance_slot) "
- . "if ref $instance_slot;\n";
- }
# build cde for an attribute
if (defined $init_arg) {
$code .= "}\n" if defined $init_arg;
+ if($is_weak_ref){
+ $code .= "Scalar::Util::weaken($instance_slot) "
+ . "if ref $instance_slot;\n";
+ }
+
push @res, $code;
}
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.93
=head1 SEE ALSO