trait is required (Attribute)
Documentation for trait is required (Attribute)
assembled from the following types:
class Attribute
From Attribute
(Attribute) trait is required (Attribute)
Defined as:
multi sub trait_mod:<is> (Attribute , :!)
The trait is required
will mark the attribute as to be filled with a value when the object is instantiated. Failing to do so will result in a runtime error.
my = C.new;CATCH# OUTPUT: «X::Attribute::Required: The attribute '$!a' is required, but you did not provide a value for it.»
Available as of 6.d language version (early implementation exists in Rakudo compiler 2018.08+): You can specify a reason why the attribute is required:
my = D.new;CATCH# OUTPUT: «X::Attribute::Required: The attribute '$!a' is required because it is a good idea,but you did not provide a value for it.»
is required
doesn't just affect the default constructor, it checks for the attribute at a lower level, so it will work for custom constructors written using bless.