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 <kjpr...@pye.id.au> 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.

Reply via email to