Variable v;
switch (node.getNodeType()) {
case DASGNNODE: {
DAsgnNode dynamicAsgn = (DAsgnNode) node;
v = getArgVariable(s, dynamicAsgn.getName(), dynamicAsgn.getDepth());
if (isSplat) s.addInstr(new RestArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
else s.addInstr(new ReqdArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
break;
}
case LOCALASGNNODE: {
LocalAsgnNode localVariable = (LocalAsgnNode) node;
v = getArgVariable(s, localVariable.getName(), localVariable.getDepth());
if (isSplat) s.addInstr(new RestArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
else s.addInstr(new ReqdArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
break;
}
case MULTIPLEASGN19NODE: {
Variable oldArgs = null;
MultipleAsgn19Node childNode = (MultipleAsgn19Node) node;
if (!isMasgnRoot) {
v = s.getNewTemporaryVariable();
if (isSplat) s.addInstr(new RestArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
else s.addInstr(new ReqdArgMultipleAsgnInstr(v, argsArray, preArgsCount, postArgsCount, index));
s.addInstr(new ToAryInstr(v, v, manager.getFalse()));
argsArray = v;
}
// Build