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
ConstructorsModifierConstructorDescriptionprivateMemberAssignmentStatementTransformer(TopLevelTransformationContext cc, MemberAssignmentStatement stmt) -
Method Summary
Modifier and TypeMethodDescriptionprivate IRStatementassignInstanceMember(IPropertyInfo pi, IRProperty irProperty) private IRStatementassignStaticMember(IPropertyInfo pi, IRProperty irProperty, IRType propertyType) static IRStatementprotected IRStatementprivate IRExpressioncompileRhs(IRProperty pi) private Stringprivate IRTypeprivate booleanisField(IPropertyInfo pi) private booleanisSuperCall(IExpression rootExpr) private booleanprivate IRExpressionpushRootExpression(IType rootType, IExpression rootExpr, IRProperty pi) private IRStatementreflectivelySetProperty(IType type, IRExpression propertyName, IRExpression root, boolean forceDynamic) Methods inherited from class gw.internal.gosu.ir.transform.statement.AbstractStatementTransformer
_stmt, compile, visitStatementLineNumber, visitStatementLineNumberMethods 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_implin 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
-