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
-
public class TypeAsTransformer extends AbstractExpressionTransformer<ITypeAsExpression>
-
-
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
Constructors Modifier Constructor Description privateTypeAsTransformer(TopLevelTransformationContext cc, ITypeAsExpression expr)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanareAssignableBytecodeTypes(ICoercer coercer, IType asType, IType lhsType)private IRExpressioncallCoercer(IRExpression root, IType lhsType)private IRExpressioncoerce(IRExpression root, ICoercer coercer)static java.lang.ObjectcoerceValue(java.lang.Object value, IType type, ICoercer coercer)static IRExpressioncompile(TopLevelTransformationContext cc, ITypeAsExpression expr)protected IRExpressioncompile_impl()private IRExpressionconvertBigToPrimitiveOrBoxed(IRExpression root, IType asType, IType lhsType, IRType asTypeDesc, boolean bDecimal)private IRExpressionconvertBoxedToPrimitive(IType lhsType, java.lang.Class cls, java.lang.String methodName, IRExpression lhsExpression)static booleanconvertToPrimitiveFromBoxOrString_boolean(java.lang.Object value)static byteconvertToPrimitiveFromBoxOrString_byte(java.lang.Object value)static charconvertToPrimitiveFromBoxOrString_char(java.lang.Object value)static doubleconvertToPrimitiveFromBoxOrString_double(java.lang.Object value)static floatconvertToPrimitiveFromBoxOrString_float(java.lang.Object value)static intconvertToPrimitiveFromBoxOrString_int(java.lang.Object value)static longconvertToPrimitiveFromBoxOrString_long(java.lang.Object value)static shortconvertToPrimitiveFromBoxOrString_short(java.lang.Object value)private booleanisStructureType(IType exprType)private IRExpressionmaybeMakePrimitive(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 Detail
-
TypeAsTransformer
private TypeAsTransformer(TopLevelTransformationContext cc, ITypeAsExpression expr)
-
-
Method Detail
-
compile
public static IRExpression compile(TopLevelTransformationContext cc, ITypeAsExpression expr)
-
compile_impl
protected IRExpression compile_impl()
- Specified by:
compile_implin classAbstractExpressionTransformer<ITypeAsExpression>
-
convertBigToPrimitiveOrBoxed
private IRExpression convertBigToPrimitiveOrBoxed(IRExpression root, IType asType, IType lhsType, IRType asTypeDesc, boolean bDecimal)
-
callCoercer
private IRExpression callCoercer(IRExpression root, IType lhsType)
-
areAssignableBytecodeTypes
private boolean areAssignableBytecodeTypes(ICoercer coercer, IType asType, IType lhsType)
-
isStructureType
private boolean isStructureType(IType exprType)
-
coerce
private IRExpression coerce(IRExpression root, ICoercer coercer)
-
maybeMakePrimitive
private IRExpression maybeMakePrimitive(IRExpression lhsExpression)
-
coerceValue
public static java.lang.Object coerceValue(java.lang.Object value, IType type, ICoercer coercer)
-
convertBoxedToPrimitive
private IRExpression convertBoxedToPrimitive(IType lhsType, java.lang.Class cls, java.lang.String methodName, IRExpression lhsExpression)
-
convertToPrimitiveFromBoxOrString_boolean
public static boolean convertToPrimitiveFromBoxOrString_boolean(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_byte
public static byte convertToPrimitiveFromBoxOrString_byte(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_char
public static char convertToPrimitiveFromBoxOrString_char(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_short
public static short convertToPrimitiveFromBoxOrString_short(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_int
public static int convertToPrimitiveFromBoxOrString_int(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_long
public static long convertToPrimitiveFromBoxOrString_long(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_float
public static float convertToPrimitiveFromBoxOrString_float(java.lang.Object value)
-
convertToPrimitiveFromBoxOrString_double
public static double convertToPrimitiveFromBoxOrString_double(java.lang.Object value)
-
-