Class IRMethodCallExpressionCompiler
java.lang.Object
gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
gw.internal.gosu.ir.compiler.bytecode.expression.IRMethodCallExpressionCompiler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static Map<Class,
Map<Class, Constructor>> static final String
Fields inherited from class gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
OBJECT_TYPE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
compile
(IRMethodCallExpression expression, IRBytecodeContext context) static Object
constructProxy
(Object root, Class iface) private static Object
createNewProxy
(Object root, Class iface) private static Class
createProxy
(Class iface, Class rootClass, boolean bStaticImpl) private static boolean
isObjectMethod
(IRMethodCallExpression expression) Determines whether or not the method in question is a method directly on Object, which thus needs to be invoked using INVOKEVIRTUAL regardless of the expression's root type.private static IRType
maybeProxyStructuralCallRoot
(IRMethodCallExpression expression, IRBytecodeContext context) Methods inherited from class gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
compileConditionAssignment, getIns, isNotPartOfBooleanExpr, isWide, negateOpcode
-
Field Details
-
STRUCTURAL_PROXY
- See Also:
-
PROXY_CACHE
-
-
Constructor Details
-
IRMethodCallExpressionCompiler
public IRMethodCallExpressionCompiler()
-
-
Method Details
-
compile
-
maybeProxyStructuralCallRoot
private static IRType maybeProxyStructuralCallRoot(IRMethodCallExpression expression, IRBytecodeContext context) -
constructProxy
-
createNewProxy
-
createProxy
-
isObjectMethod
Determines whether or not the method in question is a method directly on Object, which thus needs to be invoked using INVOKEVIRTUAL regardless of the expression's root type.
-