# New Ticket Created by  Geoffrey Broadwell 
# Please include the string:  [perl #65138]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=65138 >


Rakudo doesn't parse Foo::_foo() properly, while Foo::foo() works fine.

Before patch:

$ ./perl6 -e 'module Foo { sub _foo { say "foo" } };  Foo::_foo()'
Statement not terminated properly at line 1, near "_foo()"

current instr.: 'parrot;PGE;Util;die' pc 129 
(runtime/parrot/library/PGE/Util.pir:85)
called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 86107 
(src/gen_grammar.pir:2292)
called from Sub 'parrot;Perl6;Grammar;statementlist' pc 84764 
(src/gen_grammar.pir:1770)
called from Sub 'parrot;Perl6;Grammar;statement_block' pc 82197 
(src/gen_grammar.pir:750)
called from Sub 'parrot;Perl6;Grammar;TOP' pc 76936 (src/gen_setting.pir:16404)
called from Sub 'parrot;PCT;HLLCompiler;parse' pc 665 
(src/PCT/HLLCompiler.pir:402)
called from Sub 'parrot;PCT;HLLCompiler;compile' pc 428 
(src/PCT/HLLCompiler.pir:303)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 920 
(src/PCT/HLLCompiler.pir:521)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1510 
(src/PCT/HLLCompiler.pir:800)
called from Sub 'parrot;Perl6;Compiler;main' pc 23787 (perl6.pir:164)

After patch:

$ ./perl6 -e 'module Foo { sub _foo { say "foo" } };  Foo::_foo()'
foo

The patch is trivial:

diff --git a/src/parser/grammar.pg b/src/parser/grammar.pg
index 50b95e7..9c0b5b2 100644
--- a/src/parser/grammar.pg
+++ b/src/parser/grammar.pg
@@ -815,7 +815,7 @@ token name {
 token morename {
     '::'
     [
-        <?before '(' | <alpha> >
+        <?before '(' | <ident> >
         [
         | <identifier>
         | '(' <EXPR> ')'


I was unable to add a test for this, as for some reason I can't checkout
the spectest suite right now ....


-'f


Reply via email to