use strict;
use warnings;
-our $VERSION = '0.006004';
+our $VERSION = '0.006005';
sub install_methodhandler {
my $class = shift;
*{$args{into}.'::'.$args{name}} = sub (&) {};
}
+ my $warnings = warnings::enabled("redefine");
my $ctx = $class->new(%args);
Devel::Declare->setup_for(
$args{into},
- { $args{name} => { const => sub { $ctx->parser(@_) } } }
+ { $args{name} => { const => sub { $ctx->parser(@_, $warnings) } } }
);
}
my $code = shift;
# So caller() gets the subroutine name
no strict 'refs';
- *{$name} = subname $name => $code;
+ my $installer = $self->warning_on_redefine
+ ? sub { *{$name} = subname $name => $code; }
+ : sub { no warnings 'redefine';
+ *{$name} = subname $name => $code; };
+ $installer->();
return;
};
} else {