Package org.jruby.ir.instructions
Class BuildLambdaInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.ResultBaseInstr
org.jruby.ir.instructions.OneOperandResultBaseInstr
org.jruby.ir.instructions.BuildLambdaInstr
- All Implemented Interfaces:
ClosureAcceptingInstr
,FixedArityInstr
,ResultInstr
public class BuildLambdaInstr
extends OneOperandResultBaseInstr
implements FixedArityInstr, ClosureAcceptingInstr
-
Field Summary
Fields inherited from class org.jruby.ir.instructions.ResultBaseInstr
result
Fields inherited from class org.jruby.ir.instructions.Instr
EMPTY_OPERANDS
-
Constructor Summary
ConstructorsConstructorDescriptionBuildLambdaInstr
(Variable result, WrappedIRClosure lambdaBody) The position for the block -
Method Summary
Modifier and TypeMethodDescriptionClone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope).boolean
computeScopeFlags
(IRScope scope, EnumSet<IRFlags> flags) Does this instruction do anything the scope is interested in?static BuildLambdaInstr
boolean
interpret
(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) void
Methods inherited from class org.jruby.ir.instructions.OneOperandResultBaseInstr
encode, getOperand1, getOperands, setOperand, setOperand1
Methods inherited from class org.jruby.ir.instructions.ResultBaseInstr
getResult, updateResult
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyInstr, simplifyOperands, simplifyOperands, toString, toStringNonOperandArgs, transfersControl
-
Constructor Details
-
BuildLambdaInstr
The position for the block
-
-
Method Details
-
computeScopeFlags
Description copied from class:Instr
Does this instruction do anything the scope is interested in?- Overrides:
computeScopeFlags
in classInstr
- Returns:
- true if it modified the scope or set any flags.
-
clone
Description copied from class:Instr
Clone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode. -
getLambdaBody
-
getClosureArg
- Specified by:
getClosureArg
in interfaceClosureAcceptingInstr
-
hasLiteralClosure
public boolean hasLiteralClosure()- Specified by:
hasLiteralClosure
in interfaceClosureAcceptingInstr
-
decode
-
interpret
public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) -
visit
-