I take that back! What is the dollar sign doing there in the '$.print: ..." example?
Try it without the dollar sign. Right now you're calling .print on the anonymous variable '$' -y On Mon, Nov 18, 2019 at 8:38 AM yary <not....@gmail.com> wrote: > looks like a bug to me-file an issue on the rakudo GitHub > > On Sat, Nov 16, 2019 at 5:29 AM Raymond Dresens <raymond.dres...@gmail.com> > wrote: > >> Hello, >> >> I have a question related to the 'colon syntax' of Raku, which allows >> you to call methods without parenthesis like this: >> >> class Foo >> { >> method print($x, $y) >> { >> say "bar: {$x}, {$y}" >> } >> } >> >> my $a = Foo.new; >> >> $a.print: 3, 5; # ...this is what i mean with "colon syntax" ;) >> >> It is possible to use this syntax to call methods on 'self' as well: >> >> class Bar is Foo >> { >> method printDefault >> { >> self.print: 8, 12 >> } >> } >> >> my $b = Bar.new; >> >> $b.printDefault; >> >> I use $. rather than 'self' in order to work with attributes inside >> methods in my classes, well, ... mostly, because it does not seem >> possible to do this (in rakudo, at least version 2019.07.1): >> >> class Baz is Foo >> { >> method printDefault >> { >> $.print: 8, 12 >> } >> } >> >> This yields a "Confused" error, stating that it expects a so-called >> 'colon pair'. >> >> Is this intentional? Because I'm kind of confused as well about this, >> >> I can live with this 'syntactical quirk', but I just keep wondering >> about it because I'd personally expect that this "$.methodname: $args" >> variant should "just work" as well... >> >> ...so "what gives"? ;) >> >> Thanks for your insights! >> >> Regards, >> >> Raymond. >> > -- > -y >