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


The source documentation switched two digits in its claim on the parrot 
RT holding up the enhancement and gives the RT as 53296.  There is no RT 
53296 but 53926 matches and has been resolved.  Patch noticeably 
simplifies src/parser/expression.pir.  I don't claim expertise in the 
area, but rakudo with patch passes spectest.
diff --git a/src/parser/expression.pir b/src/parser/expression.pir
index a245f0c..ab05a15 100644
--- a/src/parser/expression.pir
+++ b/src/parser/expression.pir
@@ -22,30 +22,22 @@ result to the caller.  Any C<tighter> option is passed as a
 corresponding option to the operator precedence parser, which
 parses expressions of tighter precedence.
 
-(FIXME Parrot bug RT#53296 prevents us from using :optional
-on the C<tighter> argument along with :slurpy :named parameters,
-so we use :multi as a temporary workaround.)
-
 =cut
 
 .namespace [ "Perl6";"Grammar" ]
 
 .include "cclass.pasm"
 
-.sub "EXPR" :method :multi(_)
+.sub "EXPR" :method
+    .param pmc tighter         :optional
+    .param int got_tighter     :opt_flag
     .param pmc adverbs         :slurpy :named
     .local pmc optable
 
     optable = get_hll_global ['Perl6';'Grammar'], "$optable"
+    if got_tighter goto with_tighter
     .tailcall optable."parse"(self, 'rulename'=>'EXPR', adverbs :named :flat)
-.end
-
-.sub "EXPR" :method :multi(_,_)
-    .param pmc tighter
-    .param pmc adverbs         :slurpy :named
-    .local pmc optable
-
-    optable = get_hll_global ['Perl6';'Grammar'], "$optable"
+with_tighter:
     .tailcall optable."parse"(self, 'rulename'=>'EXPR', 'tighter'=>tighter, adverbs :named :flat)
 .end
 

Reply via email to