} else if (inClosureInlineMode) {
// when inlining a closure,
// - local var depths are reduced by 1 (to move them to the host scope)
// - tmp vars are reallocated in the host scope
if (v instanceof LocalVariable) {
LocalVariable lv = (LocalVariable)v;
int depth = lv.getScopeDepth();
newVar = getInlineHostScope().getLocalVariable(lv.getName(), depth > 1 ? depth - 1 : 0);
} else {
newVar = getInlineHostScope().getNewTemporaryVariable();
}
} else {
// when inlining a method, local vars and temps have to be renamed
newVar = getInlineHostScope().getNewInlineVariable(inlineVarPrefix, v);
}
this.varRenameMap.put(v, newVar);
} else if (inClosureCloneMode && (v instanceof LocalVariable)) {
LocalVariable l_v = (LocalVariable)v;
LocalVariable l_newVar = (LocalVariable)newVar;
if (l_v.getScopeDepth() != l_newVar.getScopeDepth()) newVar = l_newVar.cloneForDepth(l_v.getScopeDepth());
}
return newVar;
}