diff --git a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java index c841dfd70af..dfa53d07b08 100644 --- a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java +++ b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java @@ -108,7 +108,6 @@ public interface JetNodeTypes { JetNodeType FOR = new JetNodeType("FOR", JetForExpression.class); JetNodeType WHILE = new JetNodeType("WHILE", JetWhileExpression.class); JetNodeType DO_WHILE = new JetNodeType("DO_WHILE", JetDoWhileExpression.class); - JetNodeType LOOP_PARAMETER = new JetNodeType("LOOP_PARAMETER", JetParameter.class); // TODO: Do we need separate type? JetNodeType LOOP_RANGE = new JetNodeType("LOOP_RANGE", JetContainerNode.class); JetNodeType BODY = new JetNodeType("BODY", JetContainerNode.class); JetNodeType BLOCK = new JetNodeType("BLOCK", JetBlockExpression.class); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 654d93e4ac8..6025a7041f2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -1374,7 +1374,7 @@ public class JetExpressionParsing extends AbstractJetParsing { advance(); // COLON myJetParsing.parseTypeRef(TokenSet.create(IN_KEYWORD)); } - parameter.done(LOOP_PARAMETER); + parameter.done(VALUE_PARAMETER); } expect(IN_KEYWORD, "Expecting 'in'", TokenSet.create(LPAR, LBRACE)); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java index 9b38f2fc360..821bcbffc62 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetForExpression.java @@ -34,7 +34,7 @@ public class JetForExpression extends JetLoopExpression { @Nullable public JetParameter getLoopParameter() { - return (JetParameter) findChildByType(JetNodeTypes.LOOP_PARAMETER); + return (JetParameter) findChildByType(JetNodeTypes.VALUE_PARAMETER); } @Nullable diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java index d6f82ec8f4a..87a9df9e45d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetParameter.java @@ -108,4 +108,8 @@ public class JetParameter extends JetNamedDeclarationStub { public ItemPresentation getPresentation() { return ItemPresentationProviders.getItemPresentation(this); } + + public boolean isLoopParameter() { + return getParent() instanceof JetForExpression; + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java index 74009e0ea26..e5ff873c699 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/stubs/elements/JetParameterElementType.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.psi.stubs.elements; import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; import com.intellij.psi.stubs.IndexSink; import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubInputStream; @@ -60,7 +61,11 @@ public class JetParameterElementType extends JetStubElementType