That makes some reasonable sense. I guess "is required" and native attributes
are more-or-less incompatible.
Kevin.
On Wed, 24 Aug 2022, at 12:45, William Michels via perl6-users wrote:
> It seems to work okay if I change `num` to `Num`:
>
> class A {
> has Num $!a is required is built;
> };
>
> dd A.new(a => 0e0);
>
>
> #returns:
>
> A.new(a => 0e0)
>
> Note, I'm on a fairly old version of Rakudo [moar (2021.06).
>
> HTH, Bill.
>
>
> On Tue, Aug 23, 2022 at 6:47 PM Kevin Pye <[email protected]> wrote:
>>
>> Hi,
>>
>> The following fairly simple code works well:
>>
>> class A {
>> has num $!a is required is built;
>> };
>>
>> dd A.new(a => 1e0);
>>
>> producing "A.new(a => 1e0)".
>>
>> However, if we make a slight change:
>>
>> class A {
>> has num $!a is required is built;
>> };
>>
>> dd A.new(a => 0e0);
>>
>> (i.e. initialising to 0 instead of 1), we get
>>
>> The attribute '$!a' is required, but you did not provide a value for it.
>> in block <unit> at test.raku line 5
>>
>> Any value except 0 seems to work fine.
>>
>> Am I doing something stupid, or is this a problem with rakudo?
>>
>> Kevin.