public LocalVariable cloneForDepth(int n) { return n > scopeDepth ? new LocalVariable(name, n, offset) : new LocalVariable(name, n, offset, isOuterScopeVar); }
@Override public Variable cloneForCloningClosure(InlinerInfo ii) { return new LocalVariable(name, scopeDepth, offset); }
public LocalVariable cloneForDepth(int n) { return new LocalVariable(name, n, offset); }
@Override public Variable cloneForCloningClosure(InlinerInfo ii) { return new LocalVariable(name, scopeDepth, offset); }
public LocalVariable cloneForDepth(int n) { return n > scopeDepth ? new LocalVariable(name, n, offset) : new LocalVariable(name, n, offset, isOuterScopeVar); }
public LocalVariable cloneForDepth(int n) { return new LocalVariable(name, n, offset); }
@Override public LocalVariable getNewLocalVariable(String name, int scopeDepth) { assert scopeDepth == 0: "Local variable depth in IRMethod should always be zero (" + name + " had depth of " + scopeDepth + ")"; LocalVariable lvar = new LocalVariable(name, 0, localVars.nextSlot); localVars.putVariable(name, lvar); return lvar; }
@Override public LocalVariable getNewLocalVariable(String name, int scopeDepth) { assert scopeDepth == 0: "Local variable depth in IRMethod should always be zero (" + name + " had depth of " + scopeDepth + ")"; LocalVariable lvar = new LocalVariable(name, 0, localVars.nextSlot); localVars.putVariable(name, lvar); return lvar; }
/** * Find or create a local variable. By default, scopes are assumed to * only check current depth. Blocks/Closures override this because they * have special nesting rules. */ public LocalVariable getLocalVariable(String name, int scopeDepth) { LocalVariable lvar = findExistingLocalVariable(name, scopeDepth); if (lvar == null) { lvar = new LocalVariable(name, scopeDepth, localVars.nextSlot); localVars.putVariable(name, lvar); } return lvar; }
public LocalVariable getNewLocalVariable(RubySymbol name, int scopeDepth) { assert scopeDepth == 0: "Scope depth is non-zero for new-var request " + name + " in " + this; LocalVariable lvar = new LocalVariable(name, scopeDepth, getStaticScope().addVariable(name.idString())); localVars.put(name, lvar); return lvar; }
/** * Find or create a local variable. By default, scopes are assumed to * only check current depth. Blocks/Closures override this because they * have special nesting rules. */ public LocalVariable getLocalVariable(String name, int scopeDepth) { LocalVariable lvar = findExistingLocalVariable(name, scopeDepth); if (lvar == null) { lvar = new LocalVariable(name, scopeDepth, localVars.nextSlot); localVars.putVariable(name, lvar); } return lvar; }
public LocalVariable getNewLocalVariable(RubySymbol name, int scopeDepth) { assert scopeDepth == 0: "Scope depth is non-zero for new-var request " + name + " in " + this; LocalVariable lvar = new LocalVariable(name, scopeDepth, getStaticScope().addVariable(name.idString())); localVars.put(name, lvar); return lvar; }
private static Map<RubySymbol, LocalVariable> decodeScopeLocalVariables(IRReaderDecoder decoder, IRScope scope) { int size = decoder.decodeInt(); Map<RubySymbol, LocalVariable> localVariables = new HashMap(size); for (int i = 0; i < size; i++) { RubySymbol name = scope.getManager().getRuntime().newSymbol(decoder.decodeByteList()); int offset = decoder.decodeInt(); localVariables.put(name, scope instanceof IRClosure ? // SSS FIXME: do we need to read back locallyDefined boolean? new ClosureLocalVariable(name, 0, offset) : new LocalVariable(name, 0, offset)); } return localVariables; }
private static Map<RubySymbol, LocalVariable> decodeScopeLocalVariables(IRReaderDecoder decoder, IRScope scope) { int size = decoder.decodeInt(); Map<RubySymbol, LocalVariable> localVariables = new HashMap(size); for (int i = 0; i < size; i++) { RubySymbol name = scope.getManager().getRuntime().newSymbol(decoder.decodeByteList()); int offset = decoder.decodeInt(); localVariables.put(name, scope instanceof IRClosure ? // SSS FIXME: do we need to read back locallyDefined boolean? new ClosureLocalVariable(name, 0, offset) : new LocalVariable(name, 0, offset)); } return localVariables; }