diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 344fa1e5a9c..b19daacfe70 100644 --- a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1,6 +1,8 @@ package org.jetbrains.jet.codegen; +import com.intellij.openapi.project.Project; import com.intellij.psi.*; +import com.intellij.psi.search.ProjectScope; import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.*; @@ -15,6 +17,7 @@ import org.objectweb.asm.Type; import org.objectweb.asm.commons.InstructionAdapter; import org.objectweb.asm.commons.Method; +import java.util.Iterator; import java.util.List; import java.util.Stack; @@ -26,6 +29,14 @@ public class ExpressionCodegen extends JetVisitor { private static final String CLASS_STRING = "java/lang/String"; private static final String CLASS_STRING_BUILDER = "java/lang/StringBuilder"; private static final String CLASS_COMPARABLE = "java/lang/Comparable"; + private static final String CLASS_ITERABLE = "java/lang/Iterable"; + private static final String CLASS_ITERATOR = "java/util/Iterator"; + + private static final String ITERABLE_ITERATOR_DESCRIPTOR = "()Ljava/util/Iterator;"; + private static final String ITERATOR_HASNEXT_DESCRIPTOR = "()Z"; + private static final String ITERATOR_NEXT_DESCRIPTOR = "()Ljava/lang/Object;"; + + private static final Type ITERATOR_TYPE = Type.getType(Iterator.class); private final Stack