diff --git a/.idea/projectCodeStyle.xml b/.idea/projectCodeStyle.xml
index 4169b3f2f33..25b91e81484 100644
--- a/.idea/projectCodeStyle.xml
+++ b/.idea/projectCodeStyle.xml
@@ -51,16 +51,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -151,6 +141,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/idea/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/idea/src/org/jetbrains/jet/lang/resolve/BindingContext.java
index 6991fa672fa..4b28808398e 100644
--- a/idea/src/org/jetbrains/jet/lang/resolve/BindingContext.java
+++ b/idea/src/org/jetbrains/jet/lang/resolve/BindingContext.java
@@ -22,6 +22,7 @@ public interface BindingContext {
WritableSlice REFERENCE_TARGET = new BasicWritableSlice("REFERENCE_TARGET", RewritePolicy.DO_NOTHING);
WritableSlice LOOP_RANGE_ITERATOR = ManyMapSlices.createSimpleSlice("LOOP_RANGE_ITERATOR");
WritableSlice LOOP_RANGE_HAS_NEXT = ManyMapSlices.createSimpleSlice("LOOP_RANGE_HAS_NEXT");
+ WritableSlice LOOP_RANGE_NEXT = ManyMapSlices.createSimpleSlice("LOOP_RANGE_NEXT");
WritableSlice AUTOCAST = ManyMapSlices.createSimpleSlice("AUTOCAST");
WritableSlice RESOLUTION_SCOPE = ManyMapSlices.createSimpleSlice("RESOLUTION_SCOPE");
diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
index f5f6c5d0dd5..7a0d440b7c8 100644
--- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
+++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
@@ -29,9 +29,7 @@ import org.jetbrains.jet.util.WritableSlice;
import java.util.*;
-import static org.jetbrains.jet.lang.resolve.BindingContext.LOOP_RANGE_HAS_NEXT;
-import static org.jetbrains.jet.lang.resolve.BindingContext.LOOP_RANGE_ITERATOR;
-import static org.jetbrains.jet.lang.resolve.BindingContext.STATEMENT;
+import static org.jetbrains.jet.lang.resolve.BindingContext.*;
/**
* @author abreslav
@@ -2095,7 +2093,9 @@ public class JetTypeInferrer {
} else if (nextResolutionResult.isNothing()) {
context.trace.getErrorHandler().genericError(reportErrorsOn, "Loop range must have an 'iterator().next()' method");
} else {
- return nextResolutionResult.getFunctionDescriptor().getReturnType();
+ FunctionDescriptor nextFunction = nextResolutionResult.getFunctionDescriptor();
+ context.trace.record(LOOP_RANGE_NEXT, loopRange, nextFunction);
+ return nextFunction.getReturnType();
}
}
else {