From d0f284fd5f1433421dccb44b97d29b8c7b3887e2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 30 May 2011 15:46:57 +0400 Subject: [PATCH] fix stupid bug introduced during refactoring --- idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java | 1 - idea/testData/codegen/typeInfo/asInLoop.jet | 7 +++++++ idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 idea/testData/codegen/typeInfo/asInLoop.jet diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 8b01275db4b..776498d560a 100644 --- a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1504,7 +1504,6 @@ public class ExpressionCodegen extends JetVisitor { throw new UnsupportedOperationException("don't know how to handle non-class types in as/as?"); } Type type = typeMapper.mapType(jetType, OwnerKind.INTERFACE); - gen(expression.getLeft(), OBJECT_TYPE); generateInstanceOf(new Runnable() { @Override public void run() { diff --git a/idea/testData/codegen/typeInfo/asInLoop.jet b/idea/testData/codegen/typeInfo/asInLoop.jet new file mode 100644 index 00000000000..3e9f5c8379e --- /dev/null +++ b/idea/testData/codegen/typeInfo/asInLoop.jet @@ -0,0 +1,7 @@ +import java.io.* +fun main(args: Array) { + val reader = new BufferedReader(new InputStreamReader(System.`in`)) + while(true) { + val cmd = reader.readLine() as String + } +} diff --git a/idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java b/idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java index 02b8d92fe07..c8d0daea62b 100644 --- a/idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java @@ -79,6 +79,11 @@ public class TypeInfoTest extends CodegenTestCase { assertNull(foo.invoke(null)); } + public void testAsInLoop() throws Exception { + loadFile(); + generateFunction(); // assert no exception + } + private Runnable newRunnable() { return new Runnable() { @Override