Could someone please tell me what is wrong with the following?
role win_text {
has $.win_mytxt1 is rw;
has $.win_mytxt2 is rw;
};
role mywindow {
has $.border is rw;
has $.colour is rw;
does win_text;
};
my $w = new mywindow;
$w.border = 2;
$w.colour = 'red';
say $w.border;
say $w.colour;
$w.win_mytxt1 = 'quick red fox';
$w.win_mytxt2 = ' jumped over the lazy dog';
say $w.win_mytxt1 ~ $.win_mytxt2;
Running in a terminal yields:
$ pugs ./test.p6
2
red
*** No compatible subroutine found: "&win_mytxt1"
at ./test.p6 line 19, column 1-32
$
Hence defining attributes in a role and accessing them works as defined
in Synopsis 12. (If I understand the synopsis correctly, when I write
'my $w = new mywindow' I am autogenerating a class from a role.)
Otherwise I would not get the '2' and 'red' printed out.
But I could not find any mention that an attribute in a role called by a
role would have to be accessed differently.
Regards,
Richard