Author: jonathan
Date: Mon Jan 19 08:38:52 2009
New Revision: 35762

Modified:
   trunk/languages/perl6/src/parser/actions.pm

Log:
[rakudo] When we had a multi foo() rather than a multi sub foo() we didn't call 
!SIGNATURE_BIND nor did we set the block type to Sub. Fix that.

Modified: trunk/languages/perl6/src/parser/actions.pm
==============================================================================
--- trunk/languages/perl6/src/parser/actions.pm (original)
+++ trunk/languages/perl6/src/parser/actions.pm Mon Jan 19 08:38:52 2009
@@ -571,6 +571,15 @@
                 PAST::Op.new(:inline('    setprop block, "proto", %0'), 1)
             );
         }
+
+        # If it's just a routine, need to mark it as a sub and make sure we
+        # bind its signature.
+        if $<routine_def> {
+            set_block_type($past, 'Sub');
+            $past[0].push(
+                PAST::Op.new( :pasttype('call'), :name('!SIGNATURE_BIND') )
+            );
+        }
     }
 
     make $past;

Reply via email to