Package org.jruby.ir
Class IRScriptBody
java.lang.Object
org.jruby.ir.IRScope
org.jruby.ir.IRScriptBody
- All Implemented Interfaces:
ParseResult
-
Field Summary
Fields inherited from class org.jruby.ir.IRScope
compilable, fullInterpreterContext, interpreterContext, LOG, nextClosureIndex, optimizedInterpreterContext
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
We are done with execution of this scope and we can cleanup some amount of things in this scope which will no longer be used.getFile()
getId()
getName()
int
Returns the nearest scope which we can extract a live module from.boolean
Is this an eval script or a regular file script?void
setFileName
(String fileName) void
setScriptDynamicScope
(DynamicScope tlbScope) toString()
Methods inherited from class org.jruby.ir.IRScope
accessesParentsLocalVariables, addChildScope, addClosure, allocateInitialFlags, allocateInterpreterContext, allocateInterpreterContext, anyUsesEval, buildJVMExceptionTable, builtInterpreterContext, canCaptureCallersBinding, canReceiveBreaks, canReceiveNonlocalReturns, captureParentRefinements, correctVariableDepthForForLoopsForEncoding, debugOutput, depends, dumpToIGV, equals, executesOnce, findExistingLocalVariable, getAST, getByteName, getClosures, getCoverageMode, getDynamicScope, getEncoding, getExecutedPasses, getExecutionContext, getFileName, getFullInterpreterContext, getFullyQualifiedName, getInterpreterContext, getLexicalParent, getLexicalScopes, getLine, getLineNumber, getLocalVariable, getLocalVariables, getManager, getNearestMethod, getNearestNonClosurelikeScope, getNearestTopLocalVariableScope, getNewLabel, getNewLabel, getNewLocalVariable, getNextClosureId, getNextLabelIndex, getOptimizedInterpreterContext, getRootLexicalScope, getScopeId, getSelf, getStaticScope, hasBeenBuilt, hasBreakInstructions, hasFlipFlops, hashCode, hasLoops, hasNonLocalReturns, inlineMethod, inlineMethodCompiled, inlineMethodJIT, inliningAllowed, isModuleBody, isNestedInClosure, isNonSingletonClassBody, isRuby2Keywords, isScopeContainedBy, isTopLocalVariableScope, isWhereFlipFlopStateVariableIs, isWithinEND, lookupExistingLVar, maybeUsingRefinements, needsCodeCoverage, parentMaybeUsingRefinements, persistScopeFlags, persistScopeHeader, prepareForCompilation, prepareFullBuild, receivesClosureArg, receivesKeywordArgs, removeClosure, setAccessesParentsLocalVariables, setByteName, setCanCaptureCallersBinding, setCanReceiveBreaks, setCanReceiveNonlocalReturns, setCoverageMode, setHasBreakInstructions, setHasFlipFlops, setHasLoops, setHasNonLocalReturns, setIsMaybeUsingRefinements, setNeedsCodeCoverage, setNextLabelIndex, setReceivesClosureArg, setReceivesKeywordArgs, setRuby2Keywords, setUsesEval, setUsesSuper, setUsesZSuper, toStringCompileForm, toStringInstrs, usesEval, usesSuper, usesZSuper
-
Constructor Details
-
IRScriptBody
-
-
Method Details
-
getScriptDynamicScope
-
setScriptDynamicScope
-
getNearestModuleReferencingScopeDepth
public int getNearestModuleReferencingScopeDepth()Description copied from class:IRScope
Returns the nearest scope which we can extract a live module from. If this returns null (like for evals), then it means it cannot be statically determined.- Overrides:
getNearestModuleReferencingScopeDepth
in classIRScope
-
getScopeType
- Specified by:
getScopeType
in classIRScope
-
toString
-
isScriptScope
public boolean isScriptScope()Description copied from class:IRScope
Is this an eval script or a regular file script?- Overrides:
isScriptScope
in classIRScope
-
setFileName
- Overrides:
setFileName
in classIRScope
-
getFile
- Specified by:
getFile
in interfaceParseResult
- Overrides:
getFile
in classIRScope
-
getId
-
getName
-
cleanupAfterExecution
public void cleanupAfterExecution()Description copied from class:IRScope
We are done with execution of this scope and we can cleanup some amount of things in this scope which will no longer be used. Sub-classes will be the deciders of what is no longer needed. An example, to illustrate the complexity of cleanup: A class with no nested closures can remove any ICs created and can remove some other infomrational data structures like allocated variables unless closures do exist and then the ICs must stay for when closures JIT.- Overrides:
cleanupAfterExecution
in classIRScope
-