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
Constructors Modifier Constructor Description privateMemberAssignmentStatementTransformer(TopLevelTransformationContext cc, MemberAssignmentStatement stmt)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private IRStatementassignInstanceMember(IPropertyInfo pi, IRProperty irProperty)private IRStatementassignStaticMember(IPropertyInfo pi, IRProperty irProperty, IRType propertyType)static IRStatementcompile(TopLevelTransformationContext cc, MemberAssignmentStatement stmt)protected IRStatementcompile_impl()private IRExpressioncompileRhs(IRProperty pi)private java.lang.StringgetField(IPropertyInfo pi)private IRTypegetWritableType(IRProperty pi)private booleanisField(IPropertyInfo pi)private booleanisSuperCall(IExpression rootExpr)private booleanisWriteMethodMissingAndUsingLikeNamedField(IRProperty irPi)private 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, 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 Detail
-
MemberAssignmentStatementTransformer
private MemberAssignmentStatementTransformer(TopLevelTransformationContext cc, MemberAssignmentStatement stmt)
-
-
Method Detail
-
compile
public static IRStatement compile(TopLevelTransformationContext cc, MemberAssignmentStatement stmt)
-
compile_impl
protected IRStatement compile_impl()
- Specified by:
compile_implin classAbstractStatementTransformer<MemberAssignmentStatement>
-
assignInstanceMember
private IRStatement assignInstanceMember(IPropertyInfo pi, IRProperty irProperty)
-
pushRootExpression
private IRExpression pushRootExpression(IType rootType, IExpression rootExpr, IRProperty pi)
-
isWriteMethodMissingAndUsingLikeNamedField
private boolean isWriteMethodMissingAndUsingLikeNamedField(IRProperty irPi)
-
compileRhs
private IRExpression compileRhs(IRProperty pi)
-
getWritableType
private IRType getWritableType(IRProperty pi)
-
reflectivelySetProperty
private IRStatement reflectivelySetProperty(IType type, IRExpression propertyName, IRExpression root, boolean forceDynamic)
-
assignStaticMember
private IRStatement assignStaticMember(IPropertyInfo pi, IRProperty irProperty, IRType propertyType)
-
isField
private boolean isField(IPropertyInfo pi)
-
getField
private java.lang.String getField(IPropertyInfo pi)
-
isSuperCall
private boolean isSuperCall(IExpression rootExpr)
-
-