From 72ef07acefae30e5c2e687327f7ed50ec2081940 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 25 Jun 2012 17:05:01 +0400 Subject: [PATCH] Don't stub parameter if it's a loop parameter --- .../elements/JetParameterElementType.java | 5 +++++ .../stubs/impl/PsiJetPropertyStubImpl.java | 21 +++++++++++++++++++ .../jet/plugin/stubs/JetStubsTest.java | 19 +++++++++++++++++ 3 files changed, 45 insertions(+) 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 e3ba78188f8..7f35373ce6e 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 @@ -61,6 +61,11 @@ public class JetParameterElementType extends JetStubElementType implements Psi public String getName() { return StringRef.toString(name); } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + + builder.append("PsiJetPropertyStubImpl["); + + builder.append(isVar() ? "var " : "val "); + + if (isLocal()) { + builder.append("local "); + } + + builder.append("name=").append(getName()); + builder.append(" typeText=").append(getTypeText()); + builder.append(" bodyText=").append(getInferenceBodyText()); + + builder.append("]"); + + return builder.toString(); + } } diff --git a/idea/tests/org/jetbrains/jet/plugin/stubs/JetStubsTest.java b/idea/tests/org/jetbrains/jet/plugin/stubs/JetStubsTest.java index e6ea839c7af..aba17b641bc 100644 --- a/idea/tests/org/jetbrains/jet/plugin/stubs/JetStubsTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/stubs/JetStubsTest.java @@ -98,6 +98,25 @@ public class JetStubsTest extends LightCodeInsightFixtureTestCase { " VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl\n"); } + public void testNotStorePropertiesFrom() { + doBuildTest("class Test() {\n" + + " val test = 12;\n" + + " {\n" + + " for (i in 0..12) {\n" + + " }\n" + + " }\n" + + " fun more() {\n" + + " }\n" + + "}\n", + "PsiJetFileStubImpl[package=]\n" + + " CLASS:PsiJetClassStubImpl[name=Test fqn=Test superNames=[]]\n" + + " TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl\n" + + " VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl\n" + + " PROPERTY:PsiJetPropertyStubImpl[val name=test typeText=null bodyText=12]\n" + + " FUN:PsiJetFunctionStubImpl[name=more]\n" + + " VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl\n"); + } + public void testSimpleEnumBuild() { doBuildTest("enum class Test { First\n Second\n }", "PsiJetFileStubImpl[package=]\n" +