Class IRMethodCallExpressionCompiler

java.lang.Object
gw.internal.gosu.ir.compiler.bytecode.AbstractBytecodeCompiler
gw.internal.gosu.ir.compiler.bytecode.expression.IRMethodCallExpressionCompiler

public class IRMethodCallExpressionCompiler extends AbstractBytecodeCompiler
  • Field Details

  • Constructor Details

    • IRMethodCallExpressionCompiler

      public IRMethodCallExpressionCompiler()
  • Method Details

    • compile

      public static void compile(IRMethodCallExpression expression, IRBytecodeContext context)
    • maybeProxyStructuralCallRoot

      private static IRType maybeProxyStructuralCallRoot(IRMethodCallExpression expression, IRBytecodeContext context)
    • constructProxy

      public static Object constructProxy(Object root, Class iface)
    • createNewProxy

      private static Object createNewProxy(Object root, Class iface)
    • createProxy

      private static Class createProxy(Class iface, Class rootClass, boolean bStaticImpl)
    • isObjectMethod

      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.