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.