$accessor .= 'confess "Cannot assign a value to a read-only accessor" if scalar(@_) >= 2;' . "\n";
}
- if ($attribute->is_lazy) {
+ # XXX - edit by lestrrat 20090304:
+ # I couldn't quite tell why this happened, but I encountered a case
+ # where the default value was not set. In introspecting the resulting
+ # $accessor string, I realized that there was no default handling code.
+ # which led me to adding "|| $attribute->has_default" below.
+ # Tests passed, so I hope everything will be ok
+ if ($attribute->is_lazy || $attribute->has_default) {
$accessor .= $self.'->{'.$key.'} = ';
$accessor .= $attribute->has_builder