Package com.strobel.expressions
Class CompilerScope
- java.lang.Object
-
- com.strobel.expressions.CompilerScope
-
final class CompilerScope extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
CompilerScope.ArgumentStorage
private class
CompilerScope.ElementBoxStorage
private class
CompilerScope.LocalBoxStorage
private class
CompilerScope.LocalStorage
private static class
CompilerScope.Storage
-
Field Summary
Fields Modifier and Type Field Description private HoistedLocals
_closureHoistedLocals
private HoistedLocals
_hoistedLocals
private java.util.Map<ParameterExpression,CompilerScope.Storage>
_locals
private CompilerScope
_parent
private static FieldInfo
ClosureLocalsField
(package private) java.util.Map<ParameterExpression,VariableStorageKind>
definitions
(package private) boolean
isMethod
(package private) java.util.Set<java.lang.Object>
mergedScopes
(package private) boolean
needsClosure
(package private) java.lang.Object
node
(package private) java.util.Map<ParameterExpression,MutableInteger>
referenceCount
-
Constructor Summary
Constructors Constructor Description CompilerScope(java.lang.Object node, boolean isMethod)
-
Method Summary
-
-
-
Field Detail
-
ClosureLocalsField
private static final FieldInfo ClosureLocalsField
-
_locals
private final java.util.Map<ParameterExpression,CompilerScope.Storage> _locals
-
_hoistedLocals
private HoistedLocals _hoistedLocals
-
_closureHoistedLocals
private HoistedLocals _closureHoistedLocals
-
_parent
private CompilerScope _parent
-
node
final java.lang.Object node
-
isMethod
final boolean isMethod
-
needsClosure
boolean needsClosure
-
definitions
final java.util.Map<ParameterExpression,VariableStorageKind> definitions
-
referenceCount
java.util.Map<ParameterExpression,MutableInteger> referenceCount
-
mergedScopes
java.util.Set<java.lang.Object> mergedScopes
-
-
Method Detail
-
enter
CompilerScope enter(LambdaCompiler lc, CompilerScope parent)
-
exit
CompilerScope exit()
-
getNearestHoistedLocals
HoistedLocals getNearestHoistedLocals()
-
getCurrentLambdaName
private java.lang.String getCurrentLambdaName()
-
emitNewHoistedLocals
private void emitNewHoistedLocals(LambdaCompiler lc)
-
getBoxType
private static Type<? extends IStrongBox> getBoxType(Type<?> type)
-
emitCachedVariables
private void emitCachedVariables()
-
shouldCache
private boolean shouldCache(ParameterExpression v, int refCount)
-
shouldCache
private boolean shouldCache(ParameterExpression v)
-
cacheBoxToLocal
private void cacheBoxToLocal(LambdaCompiler lc, ParameterExpression v)
-
emitClosureAccess
private void emitClosureAccess(LambdaCompiler lc, HoistedLocals locals)
-
emitClosureToVariable
private void emitClosureToVariable(LambdaCompiler lc, HoistedLocals locals)
-
resolveVariable
private CompilerScope.Storage resolveVariable(ParameterExpression variable)
-
resolveVariable
private CompilerScope.Storage resolveVariable(ParameterExpression variable, HoistedLocals hoistedLocals)
-
getLocalForVariable
LocalBuilder getLocalForVariable(ParameterExpression variable)
-
emitGet
void emitGet(ParameterExpression variable)
-
emitSet
void emitSet(ParameterExpression variable)
-
setParent
private void setParent(LambdaCompiler lc, CompilerScope parent)
-
addLocal
void addLocal(LambdaCompiler lc, ParameterExpression variable)
-
allocateLocals
private void allocateLocals(LambdaCompiler lc)
-
getVariables
private ParameterExpressionList getVariables()
-
getVariables
private static ParameterExpressionList getVariables(java.lang.Object scope)
-
emitVariableAccess
void emitVariableAccess(LambdaCompiler lc, ParameterExpressionList vars)
-
-