Class MemberAccessTransformer
java.lang.Object
gw.internal.gosu.ir.transform.AbstractElementTransformer<T>
gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer<MemberAccess>
gw.internal.gosu.ir.transform.expression.MemberAccessTransformer
-
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 TypeMethodDescriptionstatic ObjectautoCreateEntityInstance(Object rootValue, String typeName, String propertyName) private IRExpressionautoCreateEntityValue(IPropertyInfo pi, IRSymbol rootSymbol) private IRExpressionbuildAccessExpression(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty, IRExpression root) private IRExpressionbuildInvocation(IType rootType, IPropertyInfo pi, IRProperty irProperty, IRSymbol rootSymbol, IRExpression root) private IRExpressioncallPropertyInfo(IType rootType, IPropertyInfo pi, IRProperty irProperty, IRExpression rawRoot) private IRExpressioncastIfTypeDerivedFromTypeVariable(IRProperty irProp, IRExpression root) static IRExpressioncompile(TopLevelTransformationContext cc, MemberAccess expr) protected IRExpressionprivate IPropertyInfoprivate Stringprivate ITypegetNextNonBlockOuter(IType type) private IRExpressionhandleAutoCreationWhenValueIsNull(IPropertyInfo pi, IRSymbol rootSymbol, IRExpression accessExpression) private IRExpressionhandleInstanceMemberAccess(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty) private IRExpressionhandleStaticMemberAccess(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty) private booleanprivate booleanprivate booleanisField(IPropertyInfo pi) private booleanprivate booleanisOuterCall(IPropertyInfo rootExpr) private booleanprivate booleanisSuperCall(IExpression rootExpr) private booleanprivate booleanprivate IRExpressionmaybeEvalRoot(IExpression rootExpr, IRExpression result) private booleanmightRequireAutoCreation(IType rootType, IPropertyInfo pi) private IRExpressionprivate IRExpressionpushRootExpression(IType rootType, IExpression rootExpr, IRProperty pi) private booleanshouldNullShortCircuit(IType rootType, IPropertyInfo pi, boolean mightRequireAutoCreation) Methods inherited from class gw.internal.gosu.ir.transform.expression.AbstractExpressionTransformer
_expr, compile, getIRParameters, pushArgumentsNoCasting, pushArgumentsWithCasting, shortCircuitValueMethods 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
-
MemberAccessTransformer
-
-
Method Details
-
compile
-
compile_impl
- Specified by:
compile_implin classAbstractExpressionTransformer<MemberAccess>
-
isArrayExpansionProperty
-
isTypeInfoProperty
-
handleInstanceMemberAccess
private IRExpression handleInstanceMemberAccess(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty) -
shouldNullShortCircuit
private boolean shouldNullShortCircuit(IType rootType, IPropertyInfo pi, boolean mightRequireAutoCreation) -
buildAccessExpression
private IRExpression buildAccessExpression(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty, IRExpression root) -
mightRequireAutoCreation
-
handleAutoCreationWhenValueIsNull
private IRExpression handleAutoCreationWhenValueIsNull(IPropertyInfo pi, IRSymbol rootSymbol, IRExpression accessExpression) -
autoCreateEntityValue
-
getNextNonBlockOuter
-
isEnhancementProperty
-
getDelegatedEnhancementProperty
-
castIfTypeDerivedFromTypeVariable
-
handleStaticMemberAccess
private IRExpression handleStaticMemberAccess(IExpression rootExpr, IType rootType, IPropertyInfo pi, IRProperty irProperty) -
maybeEvalRoot
-
isTypeProperty
-
getField
-
isField
-
isLengthProperty
-
isSuperCall
-
isOuterCall
-
callPropertyInfo
private IRExpression callPropertyInfo(IType rootType, IPropertyInfo pi, IRProperty irProperty, IRExpression rawRoot) -
buildInvocation
private IRExpression buildInvocation(IType rootType, IPropertyInfo pi, IRProperty irProperty, IRSymbol rootSymbol, IRExpression root) -
pushPropertyName
-
pushRootExpression
-
isStatic
-
autoCreateEntityInstance
-