public ForNode(char[] expr, int start, int offset, int blockStart, int blockEnd, int fields, ParserContext pCtx) { super(pCtx); boolean varsEscape = buildForEach(this.expr = expr, this.start = start, this.offset = offset, this.blockStart = blockStart, this.blockOffset = blockEnd, fields, pCtx); this.indexAlloc = pCtx != null && pCtx.isIndexAllocation(); if ((fields & COMPILE_IMMEDIATE) != 0 && compiledBlock.isEmptyStatement() && !varsEscape) { throw new RedundantCodeException(); } if (pCtx != null) { pCtx.popVariableScope(); } }
public ForNode(char[] expr, int start, int offset, int blockStart, int blockEnd, int fields, ParserContext pCtx) { super(pCtx); boolean varsEscape = buildForEach(this.expr = expr, this.start = start, this.offset = offset, this.blockStart = blockStart, this.blockOffset = blockEnd, fields, pCtx); this.indexAlloc = pCtx != null && pCtx.isIndexAllocation(); if ((fields & COMPILE_IMMEDIATE) != 0 && compiledBlock.isEmptyStatement() && !varsEscape) { throw new RedundantCodeException(); } if (pCtx != null) { pCtx.popVariableScope(); } }