From c1ab7f06f7972486b8f7185c788a292052f99e1b Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Wed, 25 Mar 2015 15:24:49 +0300 Subject: [PATCH] Get rid of getAsmMethod --- .../src/org/jetbrains/kotlin/codegen/CallableMethod.java | 4 ++++ .../org/jetbrains/kotlin/codegen/ExpressionCodegen.java | 6 +++--- .../kotlin/codegen/ImplementationBodyCodegen.java | 2 +- .../src/org/jetbrains/kotlin/codegen/StackValue.java | 7 +++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/CallableMethod.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/CallableMethod.java index aaa677ed353..e3eb1a8054c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/CallableMethod.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/CallableMethod.java @@ -95,6 +95,10 @@ public class CallableMethod implements ExtendedCallable { return signature.getAsmMethod(); } + public Type[] getArgumentTypes() { + return signature.getAsmMethod().getArgumentTypes(); + } + @Nullable public Type getThisType() { return thisClass; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 4d857a9b215..5ba92db2e65 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -3675,15 +3675,15 @@ public class ExpressionCodegen extends JetVisitor implem Callable callable = resolveToCallable(operationDescriptor, false); - Method asmMethod = resolveToCallableMethod(operationDescriptor, false, context).getAsmMethod(); - Type[] argumentTypes = asmMethod.getArgumentTypes(); + CallableMethod callableMethod = resolveToCallableMethod(operationDescriptor, false, context); + Type[] argumentTypes = callableMethod.getArgumentTypes(); StackValue collectionElementReceiver = createCollectionElementReceiver(expression, receiver, array, arrayType, operationDescriptor, isGetter, resolvedGetCall, resolvedSetCall, callable, argumentTypes); - Type elementType = isGetter ? asmMethod.getReturnType() : ArrayUtil.getLastElement(argumentTypes); + Type elementType = isGetter ? callableMethod.getReturnType() : ArrayUtil.getLastElement(argumentTypes); return StackValue.collectionElement(collectionElementReceiver, elementType, resolvedGetCall, resolvedSetCall, this, state); } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index 3275e0f7be7..808d5bf3688 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -954,7 +954,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } } - for (Type argType : callableMethod.getAsmMethod().getArgumentTypes()) { + for (Type argType : callableMethod.getArgumentTypes()) { iv.load(reg, argType); reg += argType.getSize(); } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java index 85b6fd69335..b917266ee0a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/StackValue.java @@ -932,11 +932,10 @@ public abstract class StackValue { } if (setter instanceof CallableMethod) { CallableMethod method = (CallableMethod) setter; - Method asmMethod = method.getAsmMethod(); - Type[] argumentTypes = asmMethod.getArgumentTypes(); + Type[] argumentTypes = method.getArgumentTypes(); coerce(topOfStackType, argumentTypes[argumentTypes.length - 1], v); method.invokeWithNotNullAssertion(v, state, resolvedSetCall); - Type returnType = asmMethod.getReturnType(); + Type returnType = method.getReturnType(); if (returnType != Type.VOID_TYPE) { pop(v, returnType); } @@ -1008,7 +1007,7 @@ public abstract class StackValue { } else { getter.invokeWithoutAssertions(v); - coerce(getter.getAsmMethod().getReturnType(), type, v); + coerce(getter.getReturnType(), type, v); } }