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