On Wed, 04 Oct 2017 23:19:19 -0700, david.warring wrote: > From > https://docs.perl6.org/language/nativecall#Embedding_CStructs_and_CUnions > > class Point is repr('CStruct') { > has uint16 $.x; > has uint16 $.y; > } > > class MyStruct2 is repr('CStruct') { > HAS Point $.point; # <-- embedded > has int32 $.flags; > } > > my $s = MyStruct2.new; > say $s.flags; > say $s.point.defined; > say $s.point.x; > > Produces: > > 0 > False > Cannot look up attributes in a Point type object > in block <unit> at /tmp/tst.pl line 15 > > Ie, the embedded struct is not automatically created and defined, when a > new containing struct is created. > > Rakudo version 2017.09-199-gc91c40115 built on MoarVM version > 2017.09.1-62-g89ca8eb0 > implementing Perl 6.c.
This is more an NYI than a bug... the code for that is more or less a first-pass draft. There are workarounds (see my xcb module), but they require surrendering your sanity to dark forces.