use strict;
use warnings;
-our $AUTHORITY = 'cpan:STEVAN';
-
use Moose::Role;
-with 'Moose::Meta::Method::Accessor::Native::Writer' => {
- -excludes => [
- qw(
- _maximum_arguments
- _inline_optimized_set_new_value
- )
- ]
-};
+with 'Moose::Meta::Method::Accessor::Native::Writer';
sub _maximum_arguments { 0 }
my $self = shift;
my ($slot_access) = @_;
- return '$attr->default($self)';
+ my $attr = $self->associated_attribute;
+
+ return '(do { '
+ . join(' ', $attr->_inline_generate_default(
+ '$self', '$default_for_reset'
+ )) . ' '
+ . '$default_for_reset; '
+ . '})';
}
sub _inline_optimized_set_new_value {
my $self = shift;
my ($inv, $new, $slot_access) = @_;
- return $slot_access . ' = $attr->default($self);';
+ return $slot_access . ' = ' . $self->_potential_value . ';';
}
no Moose::Role;