Skip Menu |

This queue is for tickets about the Moose CPAN distribution.

Report information
The Basics
Id: 121749
Status: new
Priority: 0/
Queue: Moose

Owner: Nobody in particular
Requestors: boris.voskr [...]

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)

Subject: fix documentation regarding lazy-ness of required attributes
Date: Wed, 17 May 2017 10:16:22 -0500
To: bug-Moose [...]
From: Boris V <boris.voskr [...]>
Download (untitled) / with headers
text/plain 1.1k
Quote from Attributes.pod <> : There are a couple caveats worth mentioning in regards to what "required" Show quoted text
> actually means. > Basically, all it says is that this attribute (name) must be provided to > the constructor, *or be lazy* with either a default or a builder.
In reality, current Moose (2.2004) implementation does not require lazy-ness for setting a required attribute with default (if the attribute is not given to the constructor). Simply having a default or builder is enough. If needed, I can provide an example proving it. Also, let me point to the place in the Moose code, which confirms my observation: $ head -n 61 Moose/lib/Class/MOP/ | tail -n 5 Show quoted text
> if( $options{required} and not( defined($options{builder}) || > defined($options{init_arg}) || exists $options{default} ) ) { > $class->_throw_exception( RequiredAttributeLacksInitialization => > class => $class, > params => > \%options > ); > }
I suggest to fix the pod document correspondingly. Regards, Boris.

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to