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.

Reply via email to