# New Ticket Created by Stephen Weeks
# Please include the string: [perl #49246]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=49246 >
NQP wasn't properly setting the viviself of new hash and array
variables.
This patch affects sub variable in compilers/nqp/src/Grammar/Actions.pir
Index: compilers/nqp/src/Grammar/Actions.pir
===================================================================
--- compilers/nqp/src/Grammar/Actions.pir (revision 24332)
+++ compilers/nqp/src/Grammar/Actions.pir (working copy)
@@ -894,8 +894,18 @@
.return ()
past_var:
$S0 = match
+ $S1 = match['sigil']
+ $S2 = 'Undef'
+ if $S1 != '%' goto past_sigil_is_array
+ $S2 = 'Hash'
+ goto past_sigil
+ past_sigil_is_array:
+ if $S1 != '@' goto past_sigil
+ $S2 = 'ResizablePMCArray'
+ goto past_sigil
+ past_sigil:
$P0 = get_hll_global ['PAST'], 'Var'
- $P1 = $P0.'new'('node'=>match, 'name'=>$S0, 'viviself'=>'Undef')
+ $P1 = $P0.'new'('node'=>match, 'name'=>$S0, 'viviself'=>$S2)
match.'result_object'($P1)
.end