From 9376313fd019dcfec39e5349df86a288fc83c893 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 5 Jun 2012 00:59:47 +0400 Subject: [PATCH] extract method --- .../src/org/jetbrains/jet/codegen/ExpressionCodegen.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 576ad5926bd..5cc23cf356a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1355,7 +1355,7 @@ public class ExpressionCodegen extends JetVisitor { // assert !superCall; // callableMethod = ClosureCodegen.asCallableMethod((FunctionDescriptor) fd); //} - if (fd instanceof ExpressionAsFunctionDescriptor || (fd instanceof SimpleFunctionDescriptor && (fd.getContainingDeclaration() instanceof FunctionDescriptor || fd.getContainingDeclaration() instanceof ScriptDescriptor))) { + if (isCallAsFunctionObject(fd)) { SimpleFunctionDescriptor invoke = CodegenUtil.createInvoke(fd); callableMethod = ClosureCodegen.asCallableMethod(invoke, typeMapper); } @@ -1365,6 +1365,11 @@ public class ExpressionCodegen extends JetVisitor { return callableMethod; } + private boolean isCallAsFunctionObject(FunctionDescriptor fd) { + return fd instanceof ExpressionAsFunctionDescriptor + || (fd instanceof SimpleFunctionDescriptor && (fd.getContainingDeclaration() instanceof FunctionDescriptor || fd.getContainingDeclaration() instanceof ScriptDescriptor)); + } + public void invokeMethodWithArguments(CallableMethod callableMethod, JetCallElement expression, StackValue receiver) { final Type calleeType = callableMethod.getGenerateCalleeType(); if (calleeType != null && expression instanceof JetCallExpression) {