Class TypeAsTransformer
java.lang.Object
gw.internal.gosu.ir.transform.AbstractElementTransformer<T>
gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer<ITypeAsExpression>
gw.internal.gosu.ir.transform.expression.TypeAsTransformer
-
Field Summary
Fields inherited from class gw.internal.gosu.ir.transform.AbstractElementTransformer
CAPTURED_VAR_PREFIX, CTX_SYMBOL, CTX_SYMBOL_SUFFIX, CUSTOM_RUNTIMES, EMPTY_CLASS_ARRAY, ENHANCEMENT_THIS_REF, ENHANCEMENT_TYPE_PARAM_PREFIX, ENUM_PARAM_PREFIX, OBJECT_TYPE, OUTER_ACCESS, TYPE_PARAM_PREFIX
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
-
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
areAssignableBytecodeTypes
(ICoercer coercer, IType asType, IType lhsType) private IRExpression
callCoercer
(IRExpression root, IType lhsType) private IRExpression
coerce
(IRExpression root, ICoercer coercer) static Object
coerceValue
(Object value, IType type, ICoercer coercer) static IRExpression
protected IRExpression
private IRExpression
convertBigToPrimitiveOrBoxed
(IRExpression root, IType asType, IType lhsType, IRType asTypeDesc, boolean bDecimal) private IRExpression
convertBoxedToPrimitive
(IType lhsType, Class cls, String methodName, IRExpression lhsExpression) static boolean
static byte
static char
static double
static float
static int
static long
static short
private boolean
isStructureType
(IType exprType) private IRExpression
maybeMakePrimitive
(IRExpression lhsExpression) Methods inherited from class gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer
_expr, compile, getIRParameters, pushArgumentsNoCasting, pushArgumentsWithCasting, shortCircuitValue
Methods inherited from class gw.internal.gosu.ir.transform.AbstractElementTransformer
_cc, assignStructuralTypeOwner, avoidVerifyError, booleanLiteral, boxValue, boxValue, boxValueToType, buildAddition, buildArithmetic, buildArrayLength, buildArrayLoad, buildArrayLoad, buildArrayStore, buildAssignment, buildCast, buildComposite, buildComposite, buildEquals, buildFieldGet, buildFieldSet, buildGreaterThan, buildIf, buildIfElse, buildInitializedArray, buildMethodCall, buildMethodCall, buildMethodCall, buildNegation, buildNewExpression, buildNewExpression, buildNewExpression, buildNotEquals, buildNullCheckTernary, buildReturn, buildSubtraction, buildTernary, buildThrow, callMethod, callMethod, callMethod, callMethod, callMethod, callSpecialMethod, callSpecialMethod, callSpecialMethod, callStaticMethod, castResultingTypeIfNecessary, charLiteral, checkCast, checkCast, checkCast, classLiteral, classLiteral, classLiteral, clearCustomRuntimes, collectArgsIntoObjArray, convertBoxedNullToPrimitive, convertNullToPrimitive, convertOperandToBig, convertOperandToPrimitive, convertOperandToRational, exprList, fastStringCoercion, findComparableParamType, findDimensionType, getActualPropertyInfo, getCapturedSymbolParameterName, getClassInfos, getConcreteType, getConstructorParamTypes, getCustomRuntime, getDeclaredField, getDeclaredFieldImpl, getDeclaredMethod, getDeclaredMethod, getDefaultConstIns, getDescriptor, getDescriptor, getDescriptor, getDescriptor, getEnclosingDFS, getField, getField_new, getGosuClass, getInstanceField, getIRTypes, getIRTypes, getModifiers, getParsedElement, getRuntimeEnclosingType, getStaticField, getTypes, getTypeVarParamName, getTypeVarsForDFS, handleCustomExpressionRuntime, handleNamedArgs, identifier, initLocalVar, initLocalVarWithDefault, initMultiArray, inStaticContext, isBigType, isBoxedIntType, isBytecodeType, isBytecodeType, isCheckedArithmeticEnabled, isCompilingEnhancement, isEnhancementType, isEvalProgram, isExecuteMethod, isHandledByCustomCoercion, isIntType, isMemberOnEnclosingType, isMemberOnEnhancementOfEnclosingType, isNonBigBoxedNumberType, isNonStaticInnerClass, isNumberType, isPrimitiveNumberType, isProgram, isProgramOrEnclosedInProgram, makeAnnotationInfos, makeArrayViaTypeInfo, makeEmptyArrayViaTypeInfo, makeIRSymbol, maybeUnwrapMetaType, newArray, nullCheckVar, nullLiteral, numberConvert, numberConvert, numericLiteral, pushArrayOfDefValueExpr, pushArrayOfString, pushArrayOfTypes, pushCapturedSymbols, pushConstant, pushEnumSuperConstructorArguments, pushExternalSymbolsMap, pushLazyType, pushLazyType, pushNull, pushOuter, pushOuter, pushOuter, pushParamTypes, pushRuntimeTypeOfTypeVar, pushString, pushThis, pushThisOrOuter, pushType, pushType, pushTypeParametersForConstructor, requiresExternalSymbolCapture, requiresImplicitEnhancementArg, requiresImplicitEnhancementArg, setCc, setField, setField, setInstanceField, setStaticField, stringLiteral, unboxValueFromType, unboxValueToType, unboxValueToType, valueOf
-
Constructor Details
-
TypeAsTransformer
-
-
Method Details
-
compile
-
compile_impl
- Specified by:
compile_impl
in classAbstractExpressionTransformer<ITypeAsExpression>
-
convertBigToPrimitiveOrBoxed
private IRExpression convertBigToPrimitiveOrBoxed(IRExpression root, IType asType, IType lhsType, IRType asTypeDesc, boolean bDecimal) -
callCoercer
-
areAssignableBytecodeTypes
-
isStructureType
-
coerce
-
maybeMakePrimitive
-
coerceValue
-
convertBoxedToPrimitive
private IRExpression convertBoxedToPrimitive(IType lhsType, Class cls, String methodName, IRExpression lhsExpression) -
convertToPrimitiveFromBoxOrString_boolean
-
convertToPrimitiveFromBoxOrString_byte
-
convertToPrimitiveFromBoxOrString_char
-
convertToPrimitiveFromBoxOrString_short
-
convertToPrimitiveFromBoxOrString_int
-
convertToPrimitiveFromBoxOrString_long
-
convertToPrimitiveFromBoxOrString_float
-
convertToPrimitiveFromBoxOrString_double
-