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;