$spec->{$no_init}{init_arg} = $no_init;
}
local $self->{captures} = {};
- my $body = ' my $class = shift;'."\n";
+ my $body = ' my $class = shift;'."\n"
+ .' $class = ref($class) if ref($class);'."\n";
$body .= $self->_handle_subconstructor($into, $name);
my $into_buildargs = $into->can('BUILDARGS');
if ( $into_buildargs && $into_buildargs != \&Moo::Object::BUILDARGS ) {
);
}
$body .= ' return $new;'."\n";
+ if ($into->can('DEMOLISH')) {
+ { local $@; require Method::Generate::DemolishAll; }
+ Method::Generate::DemolishAll->new->generate_method($into);
+ }
quote_sub
"${into}::${name}" => $body,
$self->{captures}, $quote_opts||{}