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
public abstract class AbstractElementTransformer<T extends IParsedElement> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private TopLevelTransformationContext_ccprivate static LocklessLazyVar<java.lang.Boolean>_checkedArithmeticprivate T_parsedElementstatic java.lang.StringCAPTURED_VAR_PREFIXstatic java.lang.StringCTX_SYMBOLstatic java.lang.StringCTX_SYMBOL_SUFFIXstatic java.util.Map<java.lang.String,ICustomExpressionRuntime>CUSTOM_RUNTIMESstatic java.lang.Class[]EMPTY_CLASS_ARRAYstatic java.lang.StringENHANCEMENT_THIS_REFstatic java.lang.StringENHANCEMENT_TYPE_PARAM_PREFIXstatic java.lang.StringENUM_PARAM_PREFIXstatic org.objectweb.asm.TypeOBJECT_TYPEstatic java.lang.StringOUTER_ACCESSstatic java.lang.StringTYPE_PARAM_PREFIX
-
Constructor Summary
Constructors Constructor Description AbstractElementTransformer(TopLevelTransformationContext cc, T parsedElem)
-
Method Summary
-
-
-
Field Detail
-
CTX_SYMBOL_SUFFIX
public static final java.lang.String CTX_SYMBOL_SUFFIX
- See Also:
- Constant Field Values
-
CTX_SYMBOL
public static final java.lang.String CTX_SYMBOL
- See Also:
- Constant Field Values
-
CUSTOM_RUNTIMES
public static final java.util.Map<java.lang.String,ICustomExpressionRuntime> CUSTOM_RUNTIMES
-
EMPTY_CLASS_ARRAY
public static final java.lang.Class[] EMPTY_CLASS_ARRAY
-
OUTER_ACCESS
public static final java.lang.String OUTER_ACCESS
- See Also:
- Constant Field Values
-
CAPTURED_VAR_PREFIX
public static final java.lang.String CAPTURED_VAR_PREFIX
- See Also:
- Constant Field Values
-
ENHANCEMENT_TYPE_PARAM_PREFIX
public static final java.lang.String ENHANCEMENT_TYPE_PARAM_PREFIX
- See Also:
- Constant Field Values
-
TYPE_PARAM_PREFIX
public static final java.lang.String TYPE_PARAM_PREFIX
- See Also:
- Constant Field Values
-
ENUM_PARAM_PREFIX
public static final java.lang.String ENUM_PARAM_PREFIX
- See Also:
- Constant Field Values
-
OBJECT_TYPE
public static final org.objectweb.asm.Type OBJECT_TYPE
-
ENHANCEMENT_THIS_REF
public static final java.lang.String ENHANCEMENT_THIS_REF
- See Also:
- Constant Field Values
-
_cc
private TopLevelTransformationContext _cc
-
_parsedElement
private T extends IParsedElement _parsedElement
-
_checkedArithmetic
private static LocklessLazyVar<java.lang.Boolean> _checkedArithmetic
-
-
Constructor Detail
-
AbstractElementTransformer
public AbstractElementTransformer(TopLevelTransformationContext cc, T parsedElem)
-
-
Method Detail
-
clearCustomRuntimes
public static void clearCustomRuntimes()
-
_cc
public TopLevelTransformationContext _cc()
-
setCc
protected void setCc(TopLevelTransformationContext cc)
-
getParsedElement
protected T getParsedElement()
-
getGosuClass
public ICompilableTypeInternal getGosuClass()
-
callStaticMethod
public IRExpression callStaticMethod(java.lang.Class cls, java.lang.String strMethod, java.lang.Class[] paramTypes, java.util.List<IRExpression> args)
-
callMethod
public IRExpression callMethod(java.lang.Class cls, java.lang.String strMethod, java.lang.Class[] paramTypes, IRExpression root, java.util.List<IRExpression> args)
-
callMethod
public IRExpression callMethod(IJavaClassInfo cls, java.lang.String strMethod, java.lang.Class[] paramTypes, IRExpression root, java.util.List<IRExpression> args)
-
callMethod
public IRExpression callMethod(IRMethod method, IRExpression root, java.util.List<IRExpression> explicitArgs)
-
callMethod
public IRExpression callMethod(IRMethod method, IRExpression root, java.util.List<IRExpression> explicitArgs, int[] namedArgOrder)
-
callMethod
public IRExpression callMethod(IRMethod method, IRExpression root, java.util.List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special)
-
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, java.util.List<IRExpression> explicitArgs)
-
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, java.util.List<IRExpression> explicitArgs, int[] namedArgOrder)
-
callSpecialMethod
public IRExpression callSpecialMethod(IRType rootType, IRMethod method, IRExpression root, java.util.List<IRExpression> implicitArgs, java.util.List<IRExpression> explicitArgs, int[] namedArgOrder)
-
callMethod
private IRExpression callMethod(IRType rootType, IRMethod method, IRExpression root, java.util.List<IRExpression> implicitArgs, java.util.List<IRExpression> explicitArgs, int[] namedArgOrder, boolean special)
-
handleNamedArgs
public java.util.List<IRElement> handleNamedArgs(java.util.List<IRExpression> explicitArgs, int[] namedArgOrder)
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
private boolean shouldAddExternalSymbolsMapToCall(IRMethod method)
-
isExecuteMethod
public static boolean isExecuteMethod(java.lang.String name)
-
callMethod
private IRExpression callMethod(IRMethod method, IRExpression root, boolean special, IType owner, java.util.List<IRExpression> actualArgs)
-
callMethodDirectly
private IRMethodCallExpression callMethodDirectly(IRMethod method, IRExpression root, boolean special, IType owner, java.util.List<IRExpression> actualArgs)
-
isSuperCall
private boolean isSuperCall()
-
pushEnhancementTypeParams
private void pushEnhancementTypeParams(IRMethod irMethod, IType enhancementType, java.util.List<IRExpression> args)
-
callMethodReflectively
private IRExpression callMethodReflectively(IType owner, java.lang.String strMethod, IRType returnType, java.util.List<IRType> paramTypes, IRExpression root, java.util.List<IRExpression> args)
-
pushTypeParams
private void pushTypeParams(IRMethod irMethod, java.util.List<IRExpression> args)
-
nullCheckVar
public IRStatement nullCheckVar(IRSymbol symbol)
-
pushLazyType
public IRExpression pushLazyType(IType type)
-
pushLazyType
public IRExpression pushLazyType(IType type, IGenericTypeVariable[] tvs)
-
pushLazyTypeWithInvokeDynamic
private IRExpression pushLazyTypeWithInvokeDynamic(IType type, IGenericTypeVariable[] tvs)
-
maybePushFastLazyType
private IRExpression maybePushFastLazyType(IType type)
-
buildLazyTypeResolverCall
private IRCompositeExpression buildLazyTypeResolverCall(IRMethodStatement method, IGenericTypeVariable[] tvs)
-
buildStaticLazyTypeResolverCall
private IRCompositeExpression buildStaticLazyTypeResolverCall(IRMethodStatement method)
-
buildEnhancementLazyTypeResolverCall
private IRCompositeExpression buildEnhancementLazyTypeResolverCall(IRMethodStatement method)
-
buildInstanceLazyTypeResolverCall
private IRCompositeExpression buildInstanceLazyTypeResolverCall(IRMethodStatement method)
-
buildSuperCallLazyTypeResolverCall
private IRCompositeExpression buildSuperCallLazyTypeResolverCall(IRMethodStatement method, IGenericTypeVariable[] tvs)
-
makeLazyTypeMethod
private IRMethodStatement makeLazyTypeMethod(IType type, IGenericTypeVariable[] tvs)
-
makeStaticLazyTypeMethod
private IRMethodStatement makeStaticLazyTypeMethod(IType type)
-
makeEnhancementLazyTypeMethod
private IRMethodStatement makeEnhancementLazyTypeMethod(IType type)
-
makeSuperCallLazyTypeMethod
private IRMethodStatement makeSuperCallLazyTypeMethod(IType type, IGenericTypeVariable[] tvs)
-
makeInstanceLazyTypeMethod
private IRMethodStatement makeInstanceLazyTypeMethod(IType type)
-
getGenericFunctionTypeVariables
private IGenericTypeVariable[] getGenericFunctionTypeVariables(IDynamicFunctionSymbol currentFunction)
-
pushType
public IRExpression pushType(IType type)
-
pushType
public IRExpression pushType(IType type, boolean bKeepLiteralType)
-
isRecursiveTypeParsing
private boolean isRecursiveTypeParsing(IType type)
-
pushArrayOfString
protected IRExpression pushArrayOfString(java.lang.String[] array)
-
pushArrayOfDefValueExpr
protected IRExpression pushArrayOfDefValueExpr(IExpression[] array)
-
pushArrayOfTypes
public IRExpression pushArrayOfTypes(IType[] types)
-
requiresImplicitEnhancementArg
public static boolean requiresImplicitEnhancementArg(ReducedDynamicFunctionSymbol dfs)
-
requiresImplicitEnhancementArg
public static boolean requiresImplicitEnhancementArg(IGosuMethodInfo mi)
-
getClassInfos
public IJavaClassInfo[] getClassInfos(IType[] parameters)
-
getDescriptor
public static IRType getDescriptor(java.lang.Class cls)
-
getDescriptor
public static IRType getDescriptor(IJavaClassInfo cls)
-
getDefaultConstIns
public IRExpression getDefaultConstIns(IType type)
-
getModifiers
public int getModifiers(Symbol symbol)
-
isReadObjectOrWriteObjectMethod
private boolean isReadObjectOrWriteObjectMethod(Symbol symbol)
-
isCompilingEnhancement
public boolean isCompilingEnhancement()
-
isProgramOrEnclosedInProgram
public boolean isProgramOrEnclosedInProgram(IType type)
-
boxValue
public IRExpression boxValue(IType lhsType, IRExpression root)
-
valueOf
public static java.lang.Character valueOf(char c)
-
boxValue
public IRExpression boxValue(IRType lhsType, IRExpression root)
-
boxValueToType
public IRExpression boxValueToType(IType toType, IRExpression root)
-
unboxValueToType
public IRExpression unboxValueToType(IType lhsType, IRExpression expression)
-
unboxValueToType
public IRExpression unboxValueToType(IRType lhsType, IRExpression expression)
-
unboxValueFromType
public IRExpression unboxValueFromType(IType boxedType, IRExpression root)
-
isProgram
public boolean isProgram(IType type)
-
isEnhancementType
public static boolean isEnhancementType(IType type)
-
isBytecodeType
public static boolean isBytecodeType(IType type)
-
isBytecodeType
public static boolean isBytecodeType(IConstructorInfo ci)
-
getTypes
public static IType[] getTypes(IParameterInfo[] parameters)
-
pushString
protected IRExpression pushString(IExpression expr)
-
pushParamTypes
protected IRExpression pushParamTypes(IParameterInfo[] parameters)
-
pushNull
protected IRExpression pushNull()
-
pushConstant
protected IRExpression pushConstant(java.lang.Object constant)
-
convertBoxedNullToPrimitive
protected IRExpression convertBoxedNullToPrimitive(IType boxedType)
-
convertNullToPrimitive
protected IRExpression convertNullToPrimitive(IType primitive)
-
checkCast
protected IRExpression checkCast(java.lang.Class cls, IRExpression expression)
-
checkCast
protected IRExpression checkCast(IType type, IRExpression expression)
-
checkCast
protected IRExpression checkCast(IType type, IRExpression expression, boolean bGetConcreteTypeForMetaType)
-
convertOperandToBig
protected IRAssignmentStatement convertOperandToBig(IType bigType, java.lang.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
protected IRExpression numberConvert(IType from, IType to, IRExpression root)
-
numberConvert
protected IRExpression numberConvert(IRType from, IRType to, IRExpression root)
-
isIntType
public static boolean isIntType(IType from)
-
isPrimitiveNumberType
protected boolean isPrimitiveNumberType(IType type)
-
isBigType
public static boolean isBigType(IType type)
-
isNonBigBoxedNumberType
public static boolean isNonBigBoxedNumberType(IType type)
-
isBoxedIntType
public static boolean isBoxedIntType(IType type)
-
isNumberType
public static boolean isNumberType(IType type)
-
isMemberOnEnclosingType
protected ICompilableTypeInternal isMemberOnEnclosingType(IReducedSymbol symbol)
-
isMemberOnEnhancementOfEnclosingType
protected boolean isMemberOnEnhancementOfEnclosingType(AbstractDynamicSymbol symbol)
-
pushThis
protected IRExpression pushThis()
-
pushThisOrOuter
protected IRExpression pushThisOrOuter(IType currentType)
-
pushOuter
protected IRExpression pushOuter()
-
pushOuter
protected IRExpression pushOuter(IType outerTarget)
-
pushOuter
protected IRExpression pushOuter(IType outerTarget, IType currentOuter, IRExpression root)
-
getInstanceField
protected IRExpression getInstanceField(IType owner, java.lang.String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root)
-
getStaticField
protected IRExpression getStaticField(IType owner, java.lang.String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility)
-
getField
protected IRExpression getField(IRProperty field, IRExpression root)
-
setField
protected IRStatement setField(IRProperty field, IRExpression root, IRExpression value)
-
setInstanceField
protected IRStatement setInstanceField(IType owner, java.lang.String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value)
-
setStaticField
protected IRStatement setStaticField(IType owner, java.lang.String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression value)
-
getField
private IRExpression getField(IType owner, java.lang.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, java.lang.String strField, IRType fieldType, IRExpression root)
-
setField
protected IRStatement setField(IType owner, java.lang.String strField, IRType fieldType, IRelativeTypeInfo.Accessibility accessibility, IRExpression root, IRExpression value)
-
setFieldReflectively
private IRStatement setFieldReflectively(IType owner, java.lang.String strField, IRExpression root, IRExpression value)
-
isEvalProgram
protected static boolean isEvalProgram(IGosuClassInternal gsClass)
-
getDeclaredField
public static java.lang.reflect.Field getDeclaredField(java.lang.Class cls, java.lang.String strName)
-
getDeclaredFieldImpl
public static java.lang.reflect.Field getDeclaredFieldImpl(java.lang.Class cls, java.lang.String strName)
-
getDeclaredMethod
public static java.lang.reflect.Method getDeclaredMethod(java.lang.Class cls, java.lang.String strName, java.lang.Class... params)
-
getDeclaredMethod
public static IJavaClassMethod getDeclaredMethod(IJavaClassInfo cls, java.lang.String strName, java.lang.Class... params)
-
getDeclaredMethodImpl
private static java.lang.reflect.Method getDeclaredMethodImpl(java.lang.Class cls, java.lang.String strName, java.lang.Class... params)
-
getDeclaredMethodImpl
private static IJavaClassMethod getDeclaredMethodImpl(IJavaClassInfo cls, java.lang.String strName, java.lang.Class... params)
-
newArray
protected IRExpression newArray(IRType atomicType, IRExpression sizeExpression)
-
makeArrayViaTypeInfo
protected IRExpression makeArrayViaTypeInfo(IType atomicType, java.util.List<Expression> valueExpressions)
-
makeEmptyArrayViaTypeInfo
protected IRExpression makeEmptyArrayViaTypeInfo(IType atomicType, java.util.List<Expression> sizeExpressions)
-
initMultiArray
public static java.lang.Object initMultiArray(IType componentType, java.lang.Object instance, int iDimension, int[] sizes)
-
pushRuntimeTypeOfTypeVar
public IRExpression pushRuntimeTypeOfTypeVar(IType type)
-
getRuntimeTypeParameter
private IRExpression getRuntimeTypeParameter(TypeVariableType type)
-
pushLazyTypeByFqn
private IRExpression pushLazyTypeByFqn(IType boundingType)
-
maybeGetFromEnclosingFunction
private IRExpression maybeGetFromEnclosingFunction(ICompilableType gsClass, TypeVariableType type, java.lang.String strTypeVarField)
An anonymous class enclosed in a generic function has as a synthetic field the type parameter[s] from the function.
-
getEnclosingDFS
public static IDynamicFunctionSymbol getEnclosingDFS(ICompilableType gsClass)
-
getTypeVarsForDFS
public static java.util.List<IGenericTypeVariable> getTypeVarsForDFS(IDynamicFunctionSymbol dfs)
-
getTypeVarsForEnhancement
private static IGenericTypeVariable[] getTypeVarsForEnhancement(IDynamicFunctionSymbol dfs)
-
getConstructorParamTypes
protected IRType[] getConstructorParamTypes(IType[] declaredParams, int iTypeParams, IType type)
Parameters are order like so: ctor( [OuterThis,] [This,] [CapturedSymbols,] [TypeParams,] params )
-
pushTypeParametersForConstructor
protected int pushTypeParametersForConstructor(IExpression expr, IType type, java.util.List<IRExpression> args, boolean bSuperCall, boolean genericJavaInterop)
-
pushEnumSuperConstructorArguments
protected void pushEnumSuperConstructorArguments(java.util.List<IRExpression> args)
-
pushEnclosingFunctionTypeParams
private int pushEnclosingFunctionTypeParams(IParsedElement pe, IType type, int iCount, java.util.List<IRExpression> args)
-
initLocalVarWithDefault
protected IRAssignmentStatement initLocalVarWithDefault(Symbol varSym)
-
initLocalVar
protected IRAssignmentStatement initLocalVar(Symbol varSym, IRExpression initialValue)
-
pushCapturedSymbols
protected void pushCapturedSymbols(IType type, java.util.List<IRExpression> args, boolean ignoreExternalSymbols)
-
isCapturedOnEnclosingAnonymousClass
private boolean isCapturedOnEnclosingAnonymousClass(ICapturedSymbol sym, IGosuClassInternal gsClass)
-
collectArgsIntoObjArray
public IRExpression collectArgsIntoObjArray(java.util.List<IRExpression> args)
-
getActualPropertyInfo
protected IGosuVarPropertyInfo getActualPropertyInfo(IPropertyInfo pi)
-
castResultingTypeIfNecessary
protected IRExpression castResultingTypeIfNecessary(IRType expectedType, IRType actualReturnType, IRExpression root)
-
getRuntimeEnclosingType
public static IType getRuntimeEnclosingType(IType type)
- 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)
-
classLiteral
@Deprecated protected IRExpression classLiteral(java.lang.Class value)
Deprecated.
-
classLiteral
protected IRExpression classLiteral(IJavaClassInfo value)
-
classLiteral
protected IRExpression classLiteral(IRType value)
-
pushClassLiteral
private IRExpression pushClassLiteral(IRType value, IType type)
-
getCustomRuntime
public static ICustomExpressionRuntime getCustomRuntime(java.lang.String id, IType enclosingClass)
-
handleCustomExpressionRuntime
protected IRExpression handleCustomExpressionRuntime(ICustomExpressionRuntime customRuntime, IType expectedType)
-
makeCustomRuntimeKey
private static java.lang.String makeCustomRuntimeKey(IType enclosingClass, int iLineNum, int iColumnNum)
-
pushExternalSymbolsMap
protected IRExpression pushExternalSymbolsMap()
-
requiresExternalSymbolCapture
public static boolean requiresExternalSymbolCapture(IType type)
-
buildMethodCall
protected IRMethodCallExpression buildMethodCall(IRType ownersType, java.lang.String name, boolean isInterface, IRType returnType, java.util.List<IRType> paramTypes, IRExpression root, java.util.List<IRExpression> args)
-
buildMethodCall
protected IRMethodCallExpression buildMethodCall(java.lang.Class ownersType, java.lang.String name, java.lang.Class returnType, java.lang.Class[] paramTypes, IRExpression root, java.util.List<IRExpression> args)
-
buildCast
protected IRExpression buildCast(IRType castType, IRExpression expression)
-
numericLiteral
protected IRExpression numericLiteral(java.lang.Number value)
-
charLiteral
protected IRExpression charLiteral(char c)
-
booleanLiteral
protected IRExpression booleanLiteral(boolean value)
-
nullLiteral
protected IRExpression nullLiteral()
-
stringLiteral
protected IRExpression stringLiteral(java.lang.String value)
-
buildArrayLoad
protected IRExpression buildArrayLoad(IRExpression root, int index, IRType componentType)
-
buildArrayLoad
protected IRExpression buildArrayLoad(IRExpression root, IRExpression index, IRType componentType)
-
buildFieldGet
protected IRExpression buildFieldGet(IRType owner, java.lang.String fieldName, IRType fieldType, IRExpression root)
-
buildFieldSet
protected IRStatement buildFieldSet(IRType owner, java.lang.String fieldName, IRType fieldType, IRExpression root, IRExpression value)
-
buildAssignment
protected IRAssignmentStatement buildAssignment(IRSymbol symbol, IRExpression value)
-
identifier
protected IRIdentifier identifier(IRSymbol symbol)
-
buildArrayStore
protected IRStatement buildArrayStore(IRExpression lhs, IRExpression index, IRExpression value, IRType componentType)
-
buildInitializedArray
protected IRExpression buildInitializedArray(IRType componentType, java.util.List<IRExpression> values)
-
buildNewExpression
protected IRExpression buildNewExpression(IRType type, java.util.List<IRType> parameterTypes, java.util.List<IRExpression> args)
-
buildNewExpression
protected IRExpression buildNewExpression(java.lang.Class type, java.lang.Class[] parameterTypes, java.util.List<IRExpression> args)
-
getTypeVarParamName
protected final java.lang.String getTypeVarParamName(IGenericTypeVariable typeVar)
-
getCapturedSymbolParameterName
protected java.lang.String getCapturedSymbolParameterName(ICapturedSymbol sym)
-
exprList
protected static java.util.List<IRExpression> exprList(IRExpression... expressions)
-
getIRTypes
protected static java.util.List<IRType> getIRTypes(java.lang.Class[] classes)
-
getIRTypes
protected static java.util.List<IRType> getIRTypes(IJavaClassInfo[] iJavaClassInfos)
-
buildNullCheckTernary
protected IRExpression buildNullCheckTernary(IRExpression root, IRExpression ifNull, IRExpression ifNotNull)
-
buildThrow
protected IRThrowStatement buildThrow(IRExpression exception)
-
buildIf
protected IRIfStatement buildIf(IRExpression test, IRStatement ifStatement)
-
buildIfElse
protected IRIfStatement buildIfElse(IRExpression test, IRStatement ifStatement, IRStatement elseStatement)
-
buildComposite
protected IRCompositeExpression buildComposite(IRElement... elements)
-
buildComposite
protected IRCompositeExpression buildComposite(java.util.List<IRElement> elements)
-
buildMethodCall
protected IRMethodCallStatement buildMethodCall(IRExpression methodCall)
-
buildNewExpression
protected IRNewStatement buildNewExpression(IRNewExpression newExpression)
-
buildReturn
protected IRStatement buildReturn()
-
buildEquals
protected IREqualityExpression buildEquals(IRExpression lhs, IRExpression rhs)
-
buildNotEquals
protected IREqualityExpression buildNotEquals(IRExpression lhs, IRExpression rhs)
-
buildGreaterThan
protected IRRelationalExpression buildGreaterThan(IRExpression lhs, IRExpression rhs)
-
buildTernary
protected IRExpression buildTernary(IRExpression test, IRExpression trueValue, IRExpression falseValue, IRType resultType)
-
buildAddition
protected IRExpression buildAddition(IRExpression lhs, IRExpression rhs)
-
buildSubtraction
protected IRExpression buildSubtraction(IRExpression lhs, IRExpression rhs)
-
buildArithmetic
protected IRExpression buildArithmetic(IRExpression lhs, IRExpression rhs, IRArithmeticExpression.Operation operation)
-
buildNegation
protected IRExpression buildNegation(IRExpression root)
-
buildArrayLength
protected IRExpression buildArrayLength(IRExpression root)
-
inStaticContext
protected boolean inStaticContext()
-
makeAnnotationInfos
public static java.util.List<GosuAnnotationInfo> makeAnnotationInfos(java.util.List<IGosuAnnotation> gosuAnnotations, IFeatureInfo fiAnnotated)
-
isCheckedArithmeticEnabled
protected boolean isCheckedArithmeticEnabled()
-
isNonStaticInnerClass
public static boolean isNonStaticInnerClass(IType type)
-
getField_new
protected IRExpression getField_new(IRProperty irProp, IRExpression root, IRType expectedType)
-
getFieldImpl_new
private IRExpression getFieldImpl_new(IRProperty irProp, IRExpression root)
-
getFieldReflectively_new
private IRExpression getFieldReflectively_new(IRProperty irProp, IRExpression root)
-
assignStructuralTypeOwner
protected void assignStructuralTypeOwner(IExpression rootExpr, IRExpression irMethodCall)
-
fastStringCoercion
protected IRExpression fastStringCoercion(IRExpression expr, IType operandType)
-
isHandledByCustomCoercion
protected boolean isHandledByCustomCoercion(IType operandType)
-
-