@@ -165,7 +165,7 @@ class NQP::Actions is HLL::Actions {
165
165
if $ ml {
166
166
if ~ $ ml <sym > eq ' for' {
167
167
$ past := QAST ::Block. new ( : blocktype(' immediate' ),
168
- PAST ::Var. new ( : name(' $_' ), : scope(' parameter ' ), : isdecl( 1 ) ),
168
+ QAST ::Var. new ( : name(' $_' ), : scope(' lexical ' ), : decl( ' param ' ) ),
169
169
$ past );
170
170
$ past . symbol(' $_' , : scope(' lexical' ) );
171
171
$ past . arity (1 );
@@ -349,7 +349,7 @@ class NQP::Actions is HLL::Actions {
349
349
$ past . op(' for' );
350
350
my $ block := $ past [1 ];
351
351
unless $ block . arity {
352
- $ block [0 ]. push ( PAST ::Var. new ( : name(' $_' ), : scope(' parameter ' ) ) );
352
+ $ block [0 ]. push ( QAST ::Var. new ( : name(' $_' ), : scope(' lexical ' ), : decl( ' param ' ) ) );
353
353
$ block . symbol(' $_' , : scope(' lexical' ) );
354
354
$ block . arity (1 );
355
355
}
@@ -866,9 +866,12 @@ class NQP::Actions is HLL::Actions {
866
866
}
867
867
else {
868
868
my $ BLOCK := $ * W . cur_lexpad();
869
- $ BLOCK [0 ]. push (PAST::Var. new ( : name($ name ), : isdecl(1 ), : directaccess(1 ),
870
- : viviself($ past ), : scope(' lexical' ) ) );
871
- $ BLOCK . symbol($ name , : scope(' lexical' ) );
869
+ $ BLOCK [0 ]. push (QAST ::Op. new (
870
+ : op(' bind' ),
871
+ QAST ::Var. new ( : name($ name ), : scope(' lexical' ), : decl(' var' ) ),
872
+ $ past
873
+ ));
874
+ $ BLOCK . symbol($ name , : scope(' lexical' ));
872
875
if $ * SCOPE eq ' our' {
873
876
# Need to install it at loadinit time but also re-bind
874
877
# it per invocation.
@@ -880,7 +883,7 @@ class NQP::Actions is HLL::Actions {
880
883
));
881
884
}
882
885
}
883
- $ past := QAST ::Var. new ( : name($ name ) );
886
+ $ past := QAST ::Var. new ( : name($ name ), : scope( ' lexical ' ) );
884
887
}
885
888
else {
886
889
$/ . CURSOR. panic(" $ * SCOPE scoped routines are not supported yet" );
@@ -1418,13 +1421,13 @@ class NQP::Actions is HLL::Actions {
1418
1421
1419
1422
method quote :sym </ /> ($/ ) {
1420
1423
my $ block := $ * W . pop_lexpad();
1421
- $ block [0 ]. push (PAST ::Var. new (: name<self >, : scope<parameter >));
1424
+ $ block [0 ]. push (QAST ::Var. new (: name<self >, : scope<lexical >, : decl< param >));
1422
1425
$ block [0 ]. push (QAST ::Op. new (
1423
1426
: op(' bind' ),
1424
1427
QAST ::Var. new (: name<self >, : scope<register >, : isdecl(1 ) ),
1425
1428
QAST ::Var. new ( : name<self >, : scope(' lexical' ) )));
1426
- $ block [0 ]. push (PAST ::Var. new (: name<$¢ >, : scope<lexical >, : isdecl(1 )));
1427
- $ block [0 ]. push (PAST ::Var. new (: name<$/ >, : scope<lexical >, : isdecl(1 )));
1429
+ $ block [0 ]. push (QAST ::Var. new (: name<$¢ >, : scope<lexical >, : isdecl(1 )));
1430
+ $ block [0 ]. push (QAST ::Var. new (: name<$/ >, : scope<lexical >, : isdecl(1 )));
1428
1431
$ block . symbol(' $¢' , : scope<lexical >);
1429
1432
$ block . symbol(' $/' , : scope<lexical >);
1430
1433
0 commit comments