From ebef32e0f7f9c863575138d0a8c1673c05d265c0 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 22 Aug 2012 18:03:01 +0400 Subject: [PATCH] Reverting the essential part of 0cc27c0 --- .../jetbrains/jet/codegen/ExpressionCodegen.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index f0a9317038b..2556c248ceb 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -44,17 +44,15 @@ import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.scopes.receivers.*; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.lang.types.lang.JetStandardClasses; -import org.jetbrains.jet.lang.types.lang.JetStandardLibrary; import org.jetbrains.jet.lang.types.lang.JetStandardLibraryNames; import org.jetbrains.jet.lexer.JetTokens; import java.util.*; import static org.jetbrains.jet.codegen.JetTypeMapper.*; -import static org.jetbrains.jet.lang.resolve.BindingContext.*; -import static org.jetbrains.jet.lang.resolve.BindingContextUtils.getNotNull; +import static org.jetbrains.jet.lang.resolve.BindingContext.CALL; +import static org.jetbrains.jet.lang.resolve.BindingContext.EXPRESSION_TYPE; /** * @author max @@ -3272,11 +3270,12 @@ The "returned" value of try expression with no finally is either the last expres getInIntRange(new StackValue.Local(subjectLocal, subjectType), (JetBinaryExpression) rangeExpression, inverted); } else { - ResolvedCall resolvedCall = - bindingContext.get(BindingContext.RESOLVED_CALL, conditionInRange.getOperationReference()); - Call call = bindingContext.get(BindingContext.CALL, conditionInRange.getOperationReference()); + FunctionDescriptor op = + (FunctionDescriptor) bindingContext.get(BindingContext.REFERENCE_TARGET, conditionInRange.getOperationReference()); + genToJVMStack(rangeExpression); + new StackValue.Local(subjectLocal, subjectType).put(TYPE_OBJECT, v); + invokeFunctionNoParams(op, Type.BOOLEAN_TYPE, v); - invokeFunction(call, StackValue.local(subjectLocal, subjectType), resolvedCall); if (inverted) { invertBoolean(); }