On Wed, 05 Jul 2017 09:09:48 -0700, mar...@senfdax.de wrote: > Hi there, > > this is crossposed in the perl6-users mailing list. Since noone stopped > me from assuming that this is a bug, i am going to open this now: > > > Assuming those two files A.pm and B.pm. > > The file A.pm contains a class A and a role R with a private-method and > a $!private member. (the files are in the end of the e-mail) > > > 1) I am wondering why a role can all its private methods: > > > perl6 -I. -e 'use A; use B; my $b = B.new; $b.public-method()' > priv method > > > 2) but can't write its private members: > > > perl6 -I. -e 'use A; use B; my $b = B.new; $b.set_private(A.new); $b.r' > No such private method '!!private' for invocant of type 'B' > in method set_private at /home/martin/.workspace/p6/realerror/A.pm > (A) line 24 > in block <unit> at -e line 1 > > WHEN! the set_private looks like this: > > method set_private(A $a) { > self!private = $a; > } > > > 3) It seems to work (well, it gets a error a bit later in $b.r): > > > perl6 -I. -e 'use A; use B; my $b = B.new; $b.set_private(A.new); $b.r > ' > P6opaque: no such attribute '$!private' in type B when trying to get a > value > in method s at /home/martin/.workspace/p6/realerror/A.pm (A) line 11 > in method s at /home/martin/.workspace/p6/realerror/A.pm (A) line 11 > in method r at /home/martin/.workspace/p6/realerror/A.pm (A) line 6 > in block <unit> at -e line 1 > > WHEN set_private looks like this: > > method set_private(A $a) { > $!private = $a; > } > > But method !s seems to be broken now. > > > I dont get why :( i would expect this to work. :-( > > In addition I think the error message is broken: "No such private method > '!!private' for invocant of type 'B'" it was differently in 2016.11 >
Hi, what's the full code in A.pm and B.pm files?