diff --git a/.idea/modules.xml b/.idea/modules.xml
index 335a959bed2..8958a9581db 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -6,6 +6,7 @@
+
diff --git a/idea/idea.iml b/idea/idea.iml
index fcc6e7e360a..d01e54ca4d0 100644
--- a/idea/idea.iml
+++ b/idea/idea.iml
@@ -10,6 +10,7 @@
+
diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java
index b19daacfe70..1f6a0aa7b26 100644
--- a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java
+++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java
@@ -4,6 +4,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.search.ProjectScope;
import com.intellij.psi.tree.IElementType;
+import jet.IntRange;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
@@ -32,11 +33,15 @@ public class ExpressionCodegen extends JetVisitor {
private static final String CLASS_ITERABLE = "java/lang/Iterable";
private static final String CLASS_ITERATOR = "java/util/Iterator";
+ private static final String CLASS_INT_RANGE = "jet/IntRange";
+
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 String INT_RANGE_CONSTRUCTOR_DESCRIPTOR = "(II)V";
private static final Type ITERATOR_TYPE = Type.getType(Iterator.class);
+ private static final Type INT_RANGE_TYPE = Type.getType(IntRange.class);
private final Stack