if (($spec->{trigger}||0) eq 1) {
$spec->{trigger} = quote_sub('shift->_trigger_'.$name.'(@_)');
}
+ if (exists $spec->{default}) {
+ my $default = $spec->{default};
+ unless (ref $default) {
+ die "Invalid default $default";
+ }
+ if (ref $default ne 'CODE') {
+ unless (eval { \&$default }) {
+ die "Invalid default $default";
+ }
+ }
+ }
+
my %methods;
if (my $reader = $spec->{reader}) {
if (our $CAN_HAZ_XS && $self->is_simple_get($name, $spec)) {
}
}
-sub generate_multi_set {
- my ($self, $me, $to_set, $from) = @_;
- "\@{${me}}{qw(${\join ' ', @$to_set})} = $from";
-}
-
sub _generate_core_set {
my ($self, $me, $name, $spec, $value) = @_;
my $name_str = perlstring $name;