Package gw.internal.gosu.ir.transform
Class AbstractElementTransformer<T extends IParsedElement>
java.lang.Object
gw.internal.gosu.ir.transform.AbstractElementTransformer<T>
- Direct Known Subclasses:
AbstractExpressionTransformer
,AbstractStatementTransformer
,CollectionInitializerExpressionTransformer
,FunctionStatementTransformer
,GosuClassTransformer
,GosuFragmentTransformer
,MapInitializerExpressionTransformer
,ObjectInitializerExpressionTransformer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate TopLevelTransformationContext
private static LocklessLazyVar<Boolean>
private T
static final String
static final String
static final String
static final Map<String,
ICustomExpressionRuntime> static final Class[]
static final String
static final String
static final String
static final org.objectweb.asm.Type
static final String
static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription_cc()
protected void
assignStructuralTypeOwner
(IExpression rootExpr, IRExpression irMethodCall) protected boolean
avoidVerifyError
(IType owner, IRType rootType, IRelativeTypeInfo.Accessibility accessibility) protected IRExpression
booleanLiteral
(boolean value) boxValue
(IRType lhsType, IRExpression root) boxValue
(IType lhsType, IRExpression root) boxValueToType
(IType toType, IRExpression root) protected IRExpression
buildAddition
(IRExpression lhs, IRExpression rhs) protected IRExpression
buildArithmetic
(IRExpression lhs, IRExpression rhs, IRArithmeticExpression.Operation operation) protected IRExpression
buildArrayLength
(IRExpression root) protected IRExpression
buildArrayLoad
(IRExpression root, int index, IRType componentType) protected IRExpression
buildArrayLoad
(IRExpression root, IRExpression index, IRType componentType) protected IRStatement
buildArrayStore
(IRExpression lhs, IRExpression index, IRExpression value, IRType componentType) protected IRAssignmentStatement
buildAssignment
(IRSymbol symbol, IRExpression value) protected IRExpression
buildCast
(IRType castType, IRExpression expression) protected IRCompositeExpression
buildComposite
(IRElement... elements) protected IRCompositeExpression
buildComposite
(List<IRElement> elements) private IRCompositeExpression
protected IREqualityExpression
buildEquals
(IRExpression lhs, IRExpression rhs) protected IRExpression
buildFieldGet
(IRType owner, String fieldName, IRType fieldType, IRExpression root) protected IRStatement
buildFieldSet
(IRType owner, String fieldName, IRType fieldType, IRExpression root, IRExpression value) protected IRRelationalExpression
buildGreaterThan
(IRExpression lhs, IRExpression rhs) protected IRIfStatement
buildIf
(IRExpression test, IRStatement ifStatement) protected IRIfStatement
buildIfElse
(IRExpression test, IRStatement ifStatement, IRStatement elseStatement) protected IRExpression
buildInitializedArray
(IRType componentType, List<IRExpression> values) private IRCompositeExpression
private IRCompositeExpression
buildLazyTypeResolverCall
(IRMethodStatement method, IGenericTypeVariable[] tvs) protected IRMethodCallStatement
buildMethodCall
(IRExpression methodCall) protected IRMethodCallExpression
buildMethodCall
(IRType ownersType, String name, boolean isInterface, IRType returnType, List<IRType> paramTypes, IRExpression root, List<IRExpression> args) protected IRMethodCallExpression
buildMethodCall
(Class ownersType, String name, Class returnType, Class[] paramTypes, IRExpression root, List<IRExpression> args) protected IRExpression
buildNegation
(IRExpression root) protected IRNewStatement
buildNewExpression
(IRNewExpression newExpression) protected IRExpression
buildNewExpression
(IRType type, List<IRType> parameterTypes, List<IRExpression> args) protected IRExpression
buildNewExpression
(Class type, Class[] parameterTypes, List<IRExpression> args) protected IREqualityExpression
buildNotEquals
(IRExpression lhs, IRExpression rhs) protected IRExpression
buildNullCheckTernary
(IRExpression root, IRExpression ifNull, IRExpression ifNotNull) protected IRStatement
private IRCompositeExpression
protected IRExpression
buildSubtraction
(IRExpression lhs, IRExpression rhs) private IRCompositeExpression
protected IRExpression
buildTernary
(IRExpression test, IRExpression trueValue, IRExpression falseValue, IRType resultType) protected IRThrowStatement
buildThrow
(IRExpression exception) private IRExpression
callMethod
(IRMethod method, IRExpression root, boolean special, IType owner, List<IRExpression> actualArgs) callMethod
(IRMethod method, IRExpression root, List<IRExpression> explicitArgs) callMethod
(IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder) callMethod
(IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special) private IRExpression
callMethod
(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> implicitArgs, List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special) callMethod
(IJavaClassInfo cls, String strMethod, Class[] paramTypes, IRExpression root, List<IRExpression> args) callMethod
(Class cls, String strMethod, Class[] paramTypes, IRExpression root, List<IRExpression> args) private IRMethodCallExpression
callMethodDirectly
(IRMethod method, IRExpression root, boolean special, IType owner, List<IRExpression> actualArgs) private IRExpression
callMethodReflectively
(IType owner, String strMethod, IRType returnType, List<IRType> paramTypes, IRExpression root, List<IRExpression> args) callSpecialMethod
(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> explicitArgs) callSpecialMethod
(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder) callSpecialMethod
(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> implicitArgs, List<IRExpression> explicitArgs, int[] namedArgOrder) callStaticMethod
(Class cls, String strMethod, Class[] paramTypes, List<IRExpression> args) protected IRExpression
castResultingTypeIfNecessary
(IRType expectedType, IRType actualReturnType, IRExpression root) protected IRExpression
charLiteral
(char c) protected IRExpression
checkCast
(IType type, IRExpression expression) protected IRExpression
checkCast
(IType type, IRExpression expression, boolean bGetConcreteTypeForMetaType) protected IRExpression
checkCast
(Class cls, IRExpression expression) protected IRExpression
classLiteral
(IRType value) protected IRExpression
classLiteral
(IJavaClassInfo value) protected IRExpression
classLiteral
(Class value) Deprecated.static void
protected IRExpression
convertBoxedNullToPrimitive
(IType boxedType) protected IRExpression
convertNullToPrimitive
(IType primitive) protected IRAssignmentStatement
convertOperandToBig
(IType bigType, Class bigClass, IType operandType, IRExpression operand, IRSymbol tempRet) protected IRAssignmentStatement
convertOperandToPrimitive
(IType primitiveType, IType operandType, IRExpression operand, IRSymbol tempRet) protected IRAssignmentStatement
convertOperandToRational
(IType operandType, IRExpression operand, IRSymbol tempRet) private boolean
equivalentTypes
(IType type1, IType type2) protected static List<IRExpression>
exprList
(IRExpression... expressions) protected IRExpression
fastStringCoercion
(IRExpression expr, IType operandType) protected final IType
findComparableParamType
(IType type) private IType
findCompareToParamType
(IType type) static IType
findDimensionType
(IType type) protected IGosuVarPropertyInfo
protected String
getClassInfos
(IType[] parameters) getConcreteType
(IType type) protected IRType[]
getConstructorParamTypes
(IType[] declaredParams, int iTypeParams, IType type) Parameters are order like so: ctor( [OuterThis,] [This,] [CapturedSymbols,] [TypeParams,] params )static ICustomExpressionRuntime
getCustomRuntime
(String id, IType enclosingClass) static Field
getDeclaredField
(Class cls, String strName) static Field
getDeclaredFieldImpl
(Class cls, String strName) static IJavaClassMethod
getDeclaredMethod
(IJavaClassInfo cls, String strName, Class... params) static Method
getDeclaredMethod
(Class cls, String strName, Class... params) private static IJavaClassMethod
getDeclaredMethodImpl
(IJavaClassInfo cls, String strName, Class... params) private static Method
getDeclaredMethodImpl
(Class cls, String strName, Class... params) getDefaultConstIns
(IType type) static IRType
getDescriptor
(IType type) static IRType
getDescriptor
(IType type, boolean getConcreteTypeForMetaType) static IRType
static IRType
getDescriptor
(Class cls) static IDynamicFunctionSymbol
getEnclosingDFS
(ICompilableType gsClass) protected IRExpression
getField
(IRProperty field, IRExpression root) private IRExpression
getField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root) protected IRExpression
getField_new
(IRProperty irProp, IRExpression root, IRType expectedType) private IRExpression
getFieldImpl_new
(IRProperty irProp, IRExpression root) private IRExpression
getFieldReflectively
(IType owner, String strField, IRType fieldType, IRExpression root) private IRExpression
getFieldReflectively_new
(IRProperty irProp, IRExpression root) private IGenericTypeVariable[]
getGenericFunctionTypeVariables
(IDynamicFunctionSymbol currentFunction) protected IRExpression
getInstanceField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root) getIRTypes
(IJavaClassInfo[] iJavaClassInfos) getIRTypes
(Class[] classes) int
getModifiers
(Symbol symbol) private IModule
protected T
static IType
getRuntimeEnclosingType
(IType type) private IRExpression
protected IRExpression
getStaticField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility) static IType[]
getTypes
(IParameterInfo[] parameters) protected final String
getTypeVarParamName
(IGenericTypeVariable typeVar) static List<IGenericTypeVariable>
private static IGenericTypeVariable[]
protected IRExpression
handleCustomExpressionRuntime
(ICustomExpressionRuntime customRuntime, IType expectedType) handleNamedArgs
(List<IRExpression> explicitArgs, int[] namedArgOrder) Facilitates evaluation of named args in lexical order.protected IRIdentifier
identifier
(IRSymbol symbol) protected IRAssignmentStatement
initLocalVar
(Symbol varSym, IRExpression initialValue) protected IRAssignmentStatement
initLocalVarWithDefault
(Symbol varSym) static Object
initMultiArray
(IType componentType, Object instance, int iDimension, int[] sizes) protected boolean
static boolean
static boolean
isBoxedIntType
(IType type) static boolean
static boolean
isBytecodeType
(IType type) private boolean
protected boolean
boolean
static boolean
isEnhancementType
(IType type) protected static boolean
isEvalProgram
(IGosuClassInternal gsClass) static boolean
isExecuteMethod
(String name) protected boolean
isHandledByCustomCoercion
(IType operandType) static boolean
protected ICompilableTypeInternal
protected boolean
static boolean
isNonBigBoxedNumberType
(IType type) static boolean
isNonStaticInnerClass
(IType type) static boolean
isNumberType
(IType type) protected boolean
isPrimitiveNumberType
(IType type) boolean
boolean
private boolean
private boolean
isRecursiveTypeParsing
(IType type) private boolean
static List<GosuAnnotationInfo>
makeAnnotationInfos
(List<IGosuAnnotation> gosuAnnotations, IFeatureInfo fiAnnotated) protected IRExpression
makeArrayViaTypeInfo
(IType atomicType, List<Expression> valueExpressions) private static String
makeCustomRuntimeKey
(IType enclosingClass, int iLineNum, int iColumnNum) protected IRExpression
makeEmptyArrayViaTypeInfo
(IType atomicType, List<Expression> sizeExpressions) private IRMethodStatement
private IRMethodStatement
protected IRSymbol
makeIRSymbol
(Symbol varSym) private IRMethodStatement
makeLazyTypeMethod
(IType type, IGenericTypeVariable[] tvs) private IRMethodStatement
private IRMethodStatement
makeSuperCallLazyTypeMethod
(IType type, IGenericTypeVariable[] tvs) private IRExpression
maybeGetFromEnclosingFunction
(ICompilableType gsClass, TypeVariableType type, String strTypeVarField) An anonymous class enclosed in a generic function has as a synthetic field the type parameter[s] from the function.private IRExpression
maybePushFastLazyType
(IType type) maybeUnwrapMetaType
(IType rootType) private static IType
maybeUnwrapProxy
(IType type) protected IRExpression
newArray
(IRType atomicType, IRExpression sizeExpression) nullCheckVar
(IRSymbol symbol) protected IRExpression
protected IRExpression
numberConvert
(IRType from, IRType to, IRExpression root) protected IRExpression
numberConvert
(IType from, IType to, IRExpression root) protected IRExpression
numericLiteral
(Number value) protected IRExpression
pushArrayOfDefValueExpr
(IExpression[] array) protected IRExpression
pushArrayOfString
(String[] array) pushArrayOfTypes
(IType[] types) protected void
pushCapturedSymbols
(IType type, List<IRExpression> args, boolean ignoreExternalSymbols) private IRExpression
pushClassLiteral
(IRType value, IType type) protected IRExpression
pushConstant
(Object constant) private int
pushEnclosingFunctionTypeParams
(IParsedElement pe, IType type, int iCount, List<IRExpression> args) private void
pushEnhancementTypeParams
(IRMethod irMethod, IType enhancementType, List<IRExpression> args) protected void
protected IRExpression
pushLazyType
(IType type) pushLazyType
(IType type, IGenericTypeVariable[] tvs) private IRExpression
pushLazyTypeByFqn
(IType boundingType) private IRExpression
pushLazyTypeWithInvokeDynamic
(IType type, IGenericTypeVariable[] tvs) protected IRExpression
pushNull()
protected IRExpression
protected IRExpression
protected IRExpression
pushOuter
(IType outerTarget, IType currentOuter, IRExpression root) protected IRExpression
pushParamTypes
(IParameterInfo[] parameters) protected IRExpression
pushString
(IExpression expr) protected IRExpression
pushThis()
protected IRExpression
pushThisOrOuter
(IType currentType) protected int
pushTypeParametersForConstructor
(IExpression expr, IType type, List<IRExpression> args, boolean bSuperCall, boolean genericJavaInterop) private void
pushTypeParams
(IRMethod irMethod, List<IRExpression> args) static boolean
static boolean
static boolean
protected void
protected IRStatement
setField
(IRProperty field, IRExpression root, IRExpression value) protected IRStatement
setField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value) private IRStatement
setFieldReflectively
(IType owner, String strField, IRExpression root, IRExpression value) protected IRStatement
setInstanceField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value) protected IRStatement
setStaticField
(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression value) private boolean
protected IRExpression
stringLiteral
(String value) unboxValueFromType
(IType boxedType, IRExpression root) unboxValueToType
(IRType lhsType, IRExpression expression) unboxValueToType
(IType lhsType, IRExpression expression) static Character
valueOf
(char c)
-
Field Details
-
CTX_SYMBOL_SUFFIX
- See Also:
-
CTX_SYMBOL
- See Also:
-
CUSTOM_RUNTIMES
-
EMPTY_CLASS_ARRAY
-
OUTER_ACCESS
- See Also:
-
CAPTURED_VAR_PREFIX
- See Also:
-
ENHANCEMENT_TYPE_PARAM_PREFIX
- See Also:
-
TYPE_PARAM_PREFIX
- See Also:
-
ENUM_PARAM_PREFIX
- See Also:
-
OBJECT_TYPE
public static final org.objectweb.asm.Type OBJECT_TYPE -
ENHANCEMENT_THIS_REF
- See Also:
-
_cc
-
_parsedElement
-
_checkedArithmetic
-
-
Constructor Details
-
AbstractElementTransformer
-
-
Method Details
-
clearCustomRuntimes
public static void clearCustomRuntimes() -
_cc
-
setCc
-
getParsedElement
-
getGosuClass
-
callStaticMethod
public IRExpression callStaticMethod(Class cls, String strMethod, Class[] paramTypes, List<IRExpression> args) -
callMethod
public IRExpression callMethod(Class cls, String strMethod, Class[] paramTypes, IRExpression root, List<IRExpression> args) -
callMethod
public IRExpression callMethod(IJavaClassInfo cls, String strMethod, Class[] paramTypes, IRExpression root, List<IRExpression> args) -
callMethod
-
callMethod
public IRExpression callMethod(IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder) -
callMethod
public IRExpression callMethod(IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special) -
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> explicitArgs) -
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> explicitArgs, int[] namedArgOrder) -
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> implicitArgs, List<IRExpression> explicitArgs, int[] namedArgOrder) -
callMethod
private IRExpression callMethod(IRType rootType, IRMethod method, IRExpression root, List<IRExpression> implicitArgs, List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special) -
handleNamedArgs
Facilitates evaluation of named args in lexical order. E.g.,callMe( :param3 = expr1, :param1 = expr2, :param2 = expr3 )
is parsed as:callMe( expr2, expr3, expr1 )
which is compiled to:temp1 = expr1 temp2 = expr2 temp3 = expr3 callMe( temp2, temp3, temp1 )
- Parameters:
explicitArgs
- The arg expressions in proper order for the target call. The expressions are replaced with the temp vars.namedArgOrder
- The lexical ordering of the args- Returns:
- The temp var assignments in lexical order
-
shouldAddExternalSymbolsMapToCall
-
isExecuteMethod
-
callMethod
private IRExpression callMethod(IRMethod method, IRExpression root, boolean special, IType owner, List<IRExpression> actualArgs) -
callMethodDirectly
private IRMethodCallExpression callMethodDirectly(IRMethod method, IRExpression root, boolean special, IType owner, List<IRExpression> actualArgs) -
isSuperCall
private boolean isSuperCall() -
pushEnhancementTypeParams
private void pushEnhancementTypeParams(IRMethod irMethod, IType enhancementType, List<IRExpression> args) -
callMethodReflectively
private IRExpression callMethodReflectively(IType owner, String strMethod, IRType returnType, List<IRType> paramTypes, IRExpression root, List<IRExpression> args) -
pushTypeParams
-
nullCheckVar
-
pushLazyType
-
pushLazyType
-
pushLazyTypeWithInvokeDynamic
-
maybePushFastLazyType
-
buildLazyTypeResolverCall
private IRCompositeExpression buildLazyTypeResolverCall(IRMethodStatement method, IGenericTypeVariable[] tvs) -
buildStaticLazyTypeResolverCall
-
buildEnhancementLazyTypeResolverCall
-
buildInstanceLazyTypeResolverCall
-
buildSuperCallLazyTypeResolverCall
private IRCompositeExpression buildSuperCallLazyTypeResolverCall(IRMethodStatement method, IGenericTypeVariable[] tvs) -
makeLazyTypeMethod
-
makeStaticLazyTypeMethod
-
makeEnhancementLazyTypeMethod
-
makeSuperCallLazyTypeMethod
-
makeInstanceLazyTypeMethod
-
getGenericFunctionTypeVariables
private IGenericTypeVariable[] getGenericFunctionTypeVariables(IDynamicFunctionSymbol currentFunction) -
pushType
-
pushType
-
isRecursiveTypeParsing
-
pushArrayOfString
-
pushArrayOfDefValueExpr
-
pushArrayOfTypes
-
requiresImplicitEnhancementArg
-
requiresImplicitEnhancementArg
-
getClassInfos
-
getModule
-
getConcreteType
-
getDescriptor
-
getDescriptor
-
getDescriptor
-
getDescriptor
-
getDefaultConstIns
-
getModifiers
-
isReadObjectOrWriteObjectMethod
-
isCompilingEnhancement
public boolean isCompilingEnhancement() -
isProgramOrEnclosedInProgram
-
boxValue
-
valueOf
-
boxValue
-
boxValueToType
-
unboxValueToType
-
unboxValueToType
-
unboxValueFromType
-
isProgram
-
isEnhancementType
-
isBytecodeType
-
isBytecodeType
-
getTypes
-
pushString
-
pushParamTypes
-
pushNull
-
pushConstant
-
convertBoxedNullToPrimitive
-
convertNullToPrimitive
-
checkCast
-
checkCast
-
checkCast
protected IRExpression checkCast(IType type, IRExpression expression, boolean bGetConcreteTypeForMetaType) -
convertOperandToBig
protected IRAssignmentStatement convertOperandToBig(IType bigType, Class bigClass, IType operandType, IRExpression operand, IRSymbol tempRet) -
convertOperandToRational
protected IRAssignmentStatement convertOperandToRational(IType operandType, IRExpression operand, IRSymbol tempRet) -
convertOperandToPrimitive
protected IRAssignmentStatement convertOperandToPrimitive(IType primitiveType, IType operandType, IRExpression operand, IRSymbol tempRet) -
numberConvert
-
numberConvert
-
isIntType
-
isPrimitiveNumberType
-
isBigType
-
isNonBigBoxedNumberType
-
isBoxedIntType
-
isNumberType
-
isMemberOnEnclosingType
-
isMemberOnEnhancementOfEnclosingType
-
maybeUnwrapProxy
-
pushThis
-
pushThisOrOuter
-
pushOuter
-
pushOuter
-
pushOuter
-
getInstanceField
protected IRExpression getInstanceField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root) -
getStaticField
protected IRExpression getStaticField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility) -
getField
-
setField
-
setInstanceField
protected IRStatement setInstanceField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value) -
setStaticField
protected IRStatement setStaticField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression value) -
getField
private IRExpression getField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root) -
avoidVerifyError
protected boolean avoidVerifyError(IType owner, IRType rootType, IRelativeTypeInfo.Accessibility accessibility) -
getFieldReflectively
private IRExpression getFieldReflectively(IType owner, String strField, IRType fieldType, IRExpression root) -
setField
protected IRStatement setField(IType owner, String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value) -
setFieldReflectively
private IRStatement setFieldReflectively(IType owner, String strField, IRExpression root, IRExpression value) -
isEvalProgram
-
getDeclaredField
-
getDeclaredFieldImpl
-
getDeclaredMethod
-
getDeclaredMethod
public static IJavaClassMethod getDeclaredMethod(IJavaClassInfo cls, String strName, Class... params) -
getDeclaredMethodImpl
-
getDeclaredMethodImpl
private static IJavaClassMethod getDeclaredMethodImpl(IJavaClassInfo cls, String strName, Class... params) -
newArray
-
makeArrayViaTypeInfo
-
makeEmptyArrayViaTypeInfo
protected IRExpression makeEmptyArrayViaTypeInfo(IType atomicType, List<Expression> sizeExpressions) -
initMultiArray
-
pushRuntimeTypeOfTypeVar
-
getRuntimeTypeParameter
-
pushLazyTypeByFqn
-
equivalentTypes
-
maybeGetFromEnclosingFunction
private IRExpression maybeGetFromEnclosingFunction(ICompilableType gsClass, TypeVariableType type, String strTypeVarField) An anonymous class enclosed in a generic function has as a synthetic field the type parameter[s] from the function. -
getEnclosingDFS
-
getTypeVarsForDFS
-
getTypeVarsForEnhancement
-
getConstructorParamTypes
Parameters are order like so: ctor( [OuterThis,] [This,] [CapturedSymbols,] [TypeParams,] params ) -
pushTypeParametersForConstructor
protected int pushTypeParametersForConstructor(IExpression expr, IType type, List<IRExpression> args, boolean bSuperCall, boolean genericJavaInterop) -
pushEnumSuperConstructorArguments
-
pushEnclosingFunctionTypeParams
private int pushEnclosingFunctionTypeParams(IParsedElement pe, IType type, int iCount, List<IRExpression> args) -
initLocalVarWithDefault
-
initLocalVar
-
makeIRSymbol
-
pushCapturedSymbols
protected void pushCapturedSymbols(IType type, List<IRExpression> args, boolean ignoreExternalSymbols) -
isCapturedOnEnclosingAnonymousClass
private boolean isCapturedOnEnclosingAnonymousClass(ICapturedSymbol sym, IGosuClassInternal gsClass) -
collectArgsIntoObjArray
-
getActualPropertyInfo
-
castResultingTypeIfNecessary
protected IRExpression castResultingTypeIfNecessary(IRType expectedType, IRType actualReturnType, IRExpression root) -
getRuntimeEnclosingType
- Parameters:
type
-- Returns:
- the actual runtime enclosing type of this type (handles the case of enhancements, when the "enclosing type" at runtime will be the enhanced object, rather than the acutal enclosing type)
-
maybeUnwrapMetaType
-
classLiteral
Deprecated. -
classLiteral
-
classLiteral
-
pushClassLiteral
-
getCustomRuntime
-
handleCustomExpressionRuntime
protected IRExpression handleCustomExpressionRuntime(ICustomExpressionRuntime customRuntime, IType expectedType) -
makeCustomRuntimeKey
-
pushExternalSymbolsMap
-
requiresExternalSymbolCapture
-
buildMethodCall
protected IRMethodCallExpression buildMethodCall(IRType ownersType, String name, boolean isInterface, IRType returnType, List<IRType> paramTypes, IRExpression root, List<IRExpression> args) -
buildMethodCall
protected IRMethodCallExpression buildMethodCall(Class ownersType, String name, Class returnType, Class[] paramTypes, IRExpression root, List<IRExpression> args) -
buildCast
-
numericLiteral
-
charLiteral
-
booleanLiteral
-
nullLiteral
-
stringLiteral
-
buildArrayLoad
-
buildArrayLoad
-
buildFieldGet
protected IRExpression buildFieldGet(IRType owner, String fieldName, IRType fieldType, IRExpression root) -
buildFieldSet
protected IRStatement buildFieldSet(IRType owner, String fieldName, IRType fieldType, IRExpression root, IRExpression value) -
buildAssignment
-
identifier
-
buildArrayStore
protected IRStatement buildArrayStore(IRExpression lhs, IRExpression index, IRExpression value, IRType componentType) -
buildInitializedArray
-
buildNewExpression
protected IRExpression buildNewExpression(IRType type, List<IRType> parameterTypes, List<IRExpression> args) -
buildNewExpression
protected IRExpression buildNewExpression(Class type, Class[] parameterTypes, List<IRExpression> args) -
getTypeVarParamName
-
getCapturedSymbolParameterName
-
exprList
-
getIRTypes
-
getIRTypes
-
buildNullCheckTernary
protected IRExpression buildNullCheckTernary(IRExpression root, IRExpression ifNull, IRExpression ifNotNull) -
buildThrow
-
buildIf
-
buildIfElse
protected IRIfStatement buildIfElse(IRExpression test, IRStatement ifStatement, IRStatement elseStatement) -
buildComposite
-
buildComposite
-
buildMethodCall
-
buildNewExpression
-
buildReturn
-
buildEquals
-
buildNotEquals
-
buildGreaterThan
-
buildTernary
protected IRExpression buildTernary(IRExpression test, IRExpression trueValue, IRExpression falseValue, IRType resultType) -
buildAddition
-
buildSubtraction
-
buildArithmetic
protected IRExpression buildArithmetic(IRExpression lhs, IRExpression rhs, IRArithmeticExpression.Operation operation) -
buildNegation
-
buildArrayLength
-
inStaticContext
protected boolean inStaticContext() -
makeAnnotationInfos
public static List<GosuAnnotationInfo> makeAnnotationInfos(List<IGosuAnnotation> gosuAnnotations, IFeatureInfo fiAnnotated) -
isCheckedArithmeticEnabled
protected boolean isCheckedArithmeticEnabled() -
isNonStaticInnerClass
-
getField_new
-
getFieldImpl_new
-
getFieldReflectively_new
-
assignStructuralTypeOwner
-
fastStringCoercion
-
isHandledByCustomCoercion
-
findDimensionType
-
findComparableParamType
-
findCompareToParamType
-