Top Description Fields Constructors Methods
org.jruby.ir.transformations.inlining

public Class SimpleCloneInfo

extends CloneInfo
Class Inheritance
Imports
org.jruby.ir.IRScope, org.jruby.ir.operands.Label, .LocalVariable, .Variable

Context info for simple cloning operation.

Field Summary

Modifier and TypeField and Description
private boolean
private final boolean
Inherited from org.jruby.ir.transformations.inlining.CloneInfo:
labelRenameMapscopevariableRenameMap

Constructor Summary

AccessConstructor and Description
public
SimpleCloneInfo(IRScope scope, boolean isEnsureBlock, boolean cloneIPC)

public
SimpleCloneInfo(IRScope scope, boolean isEnsureBlock)

Method Summary

Modifier and TypeMethod and Description
protected Label
public Variable
public Variable
getRenamedVariable(Variable
to be renamed
variable
)

Overrides org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariable.

Return a new instance of a variable for the newly cloned scope.

protected Variable
getRenamedVariableSimple(Variable
to be renamed
v
)

Implements abstract org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariableSimple.

How are typical variables renamed if they were not yet found in the variable renaming map?

public boolean
public void
public boolean
Inherited from org.jruby.ir.transformations.inlining.CloneInfo:
cloneForCloningClosuregetRenamedLabelgetScope

Field Detail

cloneIPCback to summary
private boolean cloneIPC
isEnsureBlockback to summary
private final boolean isEnsureBlock

Constructor Detail

SimpleCloneInfoback to summary
public SimpleCloneInfo(IRScope scope, boolean isEnsureBlock, boolean cloneIPC)
SimpleCloneInfoback to summary
public SimpleCloneInfo(IRScope scope, boolean isEnsureBlock)

Method Detail

getRenamedLabelSimpleback to summary
protected Label getRenamedLabelSimple(Label l)

Implements abstract org.jruby.ir.transformations.inlining.CloneInfo.getRenamedLabelSimple.

getRenamedSelfVariableback to summary
public Variable getRenamedSelfVariable(Variable self)

Implements abstract org.jruby.ir.transformations.inlining.CloneInfo.getRenamedSelfVariable.

Doc from org.jruby.ir.transformations.inlining.CloneInfo.getRenamedSelfVariable.

How do we rename %self?

Parameters
self:Variable

to be renamed

Returns:Variable

the new self or itself

getRenamedVariableback to summary
public Variable getRenamedVariable(Variable variable)

Overrides org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariable.

Doc from org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariable.

Return a new instance of a variable for the newly cloned scope. Maps are maintained because Variables typically share the same instance across a CFG (of the same lexical depth).

Parameters
variable:Variable

to be renamed

Returns:Variable

the new Variable

getRenamedVariableSimpleback to summary
protected Variable getRenamedVariableSimple(Variable v)

Implements abstract org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariableSimple.

Doc from org.jruby.ir.transformations.inlining.CloneInfo.getRenamedVariableSimple.

How are typical variables renamed if they were not yet found in the variable renaming map?

Parameters
v:Variable

to be renamed

Returns:Variable

the new variable

isEnsureBlockCloneModeback to summary
public boolean isEnsureBlockCloneMode()
renameLabelback to summary
public void renameLabel(Label l)
shouldCloneIPCback to summary
public boolean shouldCloneIPC()