On Mon Sep 12 07:33:33 2016, darek.cidlin...@atlas.cz wrote:
>         2) should the newline before the ... operator be forbidden,
> the error message could be clearer than a single asterisk.

Thanks for the report, but I think I'm going to close this without any changes.

What happens is your } without unspace after it closes the previous statement 
and you start a new one, but in this new context, the `...` is a Stub. 
Furthermore, you can give that Stub arguments to call `fail` with. So the 
compiler thinks you're giving it the Whatever as an argument to `fail` and 
that's what the error message prints out.

So improving the message would involve exempting the Whatever from allowed 
arguments to ... Stub. But... that wouldn't solve the issue entirely. For 
example, I like to use `∞` instead of Whatever Star as an end point to …. Also, 
10 < *, { whatever }, and "foo" can also be used as an end point, so we can't 
exclude all of the possible endpoints from the Stub arguments to give a better 
error message.

With knowledge that } as last thing on the line closes blocks, it was pretty 
easy for me to spot what the problem was, so I think despite the error message 
looking funky in this particular case, its content is a side-effect of 
interaction of two features and improving the message means restricting those 
features, while the target audience who would be helped by the better message 
may be rather slim.

zoffix@leliana:~$ perl6 -e '... *'
*
  in any  at 
/home/zoffix/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm
 line 1
  in block <unit> at -e line 1

zoffix@leliana:~$ perl6 -e '... "This is a message!"'
This is a message!
  in any  at 
/home/zoffix/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm
 line 1
  in block <unit> at -e line 1

zoffix@leliana:~$ 

Reply via email to