looks like a bug to me-file an issue on the rakudo GitHub
On Sat, Nov 16, 2019 at 5:29 AM Raymond Dresens <[email protected]>
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