From 056c7e0df3631e29caa47f412112bc14d1fa90e7 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 28 Mar 2013 21:05:55 +0400 Subject: [PATCH] Simplified code. --- .../jetbrains/jet/codegen/ClosureCodegen.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index de2b9052c19..29f6c37d6cf 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -111,10 +111,10 @@ public class ClosureCodegen extends GenerationStateAware { cv.visitSource(fun.getContainingFile().getName(), null); - generateBridge(interfaceFunction, name.getInternalName(), funDescriptor, fun, cv); + generateBridge(interfaceFunction, funDescriptor, fun, cv); generateBody(interfaceFunction.getName(), funDescriptor, cv, fun, context, expressionCodegen); - constructor = generateConstructor(funClass, fun, cv, closure); + constructor = generateConstructor(superclass, fun, cv); if (isConst(closure)) { generateConstInstance(fun, cv); @@ -163,7 +163,6 @@ public class ClosureCodegen extends GenerationStateAware { private void generateBridge( FunctionDescriptor interfaceFunction, - String className, FunctionDescriptor funDescriptor, JetExpression fun, ClassBuilder cv @@ -186,7 +185,7 @@ public class ClosureCodegen extends GenerationStateAware { InstructionAdapter iv = new InstructionAdapter(mv); - iv.load(0, Type.getObjectType(className)); + iv.load(0, name.getAsmType()); ReceiverParameterDescriptor receiver = funDescriptor.getReceiverParameter(); int count = 1; @@ -201,7 +200,7 @@ public class ClosureCodegen extends GenerationStateAware { count++; } - iv.invokevirtual(className, interfaceFunction.getName().getName(), delegate.getDescriptor()); + iv.invokevirtual(name.getInternalName(), interfaceFunction.getName().getName(), delegate.getDescriptor()); StackValue.onStack(delegate.getReturnType()).put(bridge.getReturnType(), iv); iv.areturn(bridge.getReturnType()); @@ -211,10 +210,9 @@ public class ClosureCodegen extends GenerationStateAware { } private Method generateConstructor( - JvmClassName funClass, + JvmClassName superclass, JetExpression fun, - ClassBuilder cv, - CalculatedClosure closure + ClassBuilder cv ) { List args = calculateConstructorParameters(typeMapper, bindingContext, closure, name.getAsmType()); @@ -230,10 +228,8 @@ public class ClosureCodegen extends GenerationStateAware { mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); - Type superAsmType = samInterface == null ? funClass.getAsmType() : OBJECT_TYPE; - - iv.load(0, superAsmType); - iv.invokespecial(superAsmType.getInternalName(), "", "()V"); + iv.load(0, superclass.getAsmType()); + iv.invokespecial(superclass.getInternalName(), "", "()V"); int k = 1; for (FieldInfo fieldInfo : args) {