From 2711d3fcd7818ea20af16f61851eda7fbf638898 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 14 Apr 2011 18:26:02 +0200 Subject: [PATCH] failing tests for post-increment as statement --- .../jetbrains/jet/codegen/ExpressionCodegen.java | 14 +++++++++----- .../jetbrains/jet/codegen/NamespaceGenTest.java | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index e1037b7ddf5..fca4a8d2f4f 100644 --- a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -720,11 +720,15 @@ public class ExpressionCodegen extends JetVisitor { final Type asmType = expressionType(expression); DeclarationDescriptor cls = op.getContainingDeclaration(); if (isNumberPrimitive(cls) && (op.getName().equals("inc") || op.getName().equals("dec"))) { - int oldStackSize = myStack.size(); - gen(expression.getBaseExpression(), asmType); - generateIncrement(op, asmType, expression.getBaseExpression()); - myStack.push(StackValue.onStack(asmType)); - assert myStack.size() == oldStackSize+1; + if (bindingContext.isStatement(expression)) { + generateIncrement(op, asmType, expression.getBaseExpression()); + } + else { + int oldStackSize = myStack.size(); + gen(expression.getBaseExpression(), asmType); + myStack.push(StackValue.onStack(asmType)); + assert myStack.size() == oldStackSize+1; + } return; } } diff --git a/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java b/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java index 1735c150a4f..97dd45b4ae2 100644 --- a/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java @@ -478,7 +478,7 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase { assertTrue(hadException); } - public void _testBottlesNeedToDistinguishExpressionsStatements() throws Exception { + public void testDecrementAsStatement() throws Exception { loadFile("bottles.jet"); System.out.println(generateToText()); final Method main = generateFunction();