Class MemberAssignmentStatementTransformer
java.lang.Object
gw.internal.gosu.ir.transform.AbstractElementTransformer<T>
gw.internal.gosu.ir.transform.statement.AbstractStatementTransformer<MemberAssignmentStatement>
gw.internal.gosu.ir.transform.statement.MemberAssignmentStatementTransformer
public class MemberAssignmentStatementTransformer
extends AbstractStatementTransformer<MemberAssignmentStatement>
-
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
MemberAssignmentStatementTransformer
(TopLevelTransformationContext cc, MemberAssignmentStatement stmt) -
Method Summary
Modifier and TypeMethodDescriptionprivate IRStatement
assignInstanceMember
(IPropertyInfo pi, IRProperty irProperty) private IRStatement
assignStaticMember
(IPropertyInfo pi, IRProperty irProperty, IRType propertyType) static IRStatement
protected IRStatement
private IRExpression
compileRhs
(IRProperty pi) private String
private IRType
private boolean
isField
(IPropertyInfo pi) private boolean
isSuperCall
(IExpression rootExpr) private boolean
private IRExpression
pushRootExpression
(IType rootType, IExpression rootExpr, IRProperty pi) private IRStatement
reflectivelySetProperty
(IType type, IRExpression propertyName, IRExpression root, boolean forceDynamic) Methods inherited from class gw.internal.gosu.ir.transform.statement.AbstractStatementTransformer
_stmt, compile, visitStatementLineNumber, visitStatementLineNumber
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
-
MemberAssignmentStatementTransformer
private MemberAssignmentStatementTransformer(TopLevelTransformationContext cc, MemberAssignmentStatement stmt)
-
-
Method Details
-
compile
-
compile_impl
- Specified by:
compile_impl
in classAbstractStatementTransformer<MemberAssignmentStatement>
-
assignInstanceMember
-
pushRootExpression
-
isWriteMethodMissingAndUsingLikeNamedField
-
compileRhs
-
getWritableType
-
reflectivelySetProperty
private IRStatement reflectivelySetProperty(IType type, IRExpression propertyName, IRExpression root, boolean forceDynamic) -
assignStaticMember
private IRStatement assignStaticMember(IPropertyInfo pi, IRProperty irProperty, IRType propertyType) -
isField
-
getField
-
isSuperCall
-