@@ -614,7 +614,8 @@ protected void receiveForArgs(Node node) {
614614 if (node instanceof MultiTargetNode ) { // for loops
615615 buildBlockArgsAssignment (node , null , 0 , false );
616616 } else if (node instanceof ClassVariableTargetNode || node instanceof LocalVariableTargetNode ||
617- node instanceof InstanceVariableTargetNode || node instanceof ConstantTargetNode ) {
617+ node instanceof InstanceVariableTargetNode || node instanceof ConstantTargetNode ||
618+ node instanceof GlobalVariableTargetNode ) {
618619 receivePreArg (node , keywords , 0 );
619620 } else {
620621 throw notCompilable ("missing arg processing for `for`" , node );
@@ -2199,6 +2200,9 @@ public void receivePreArg(Node node, Variable keywords, int argIndex) {
21992200 } else if (node instanceof LocalVariableTargetNode ) { // blocks/for
22002201 Variable v = getLocalVariable (((LocalVariableTargetNode ) node ).name , ((LocalVariableTargetNode ) node ).depth );
22012202 addInstr (new ReceivePreReqdArgInstr (v , keywords , argIndex ));
2203+ } else if (node instanceof GlobalVariableTargetNode target ) {
2204+ Variable v = (Variable ) buildGlobalVar (temp (), target .name );
2205+ addInstr (new ReceivePreReqdArgInstr (v , keywords , argIndex ));
22022206 } else {
22032207 throw notCompilable ("Can't build required parameter node" , node );
22042208 }
0 commit comments