From 8db05460525dc90b402629e2d26a6bafc9abddc6 Mon Sep 17 00:00:00 2001 From: "Alexander.Podkhalyuzin" Date: Mon, 21 May 2012 18:29:01 +0400 Subject: [PATCH] Do not check function names in scope to suggest name for introduce variable refactoring (local values can overload function names from upper scopes). --- .../jet/plugin/refactoring/JetNameValidatorImpl.java | 3 ++- idea/testData/refactoring/nameSuggester/ArrayList.kt | 7 +++++++ .../refactoring/nameSuggester/JetNameSuggesterTest.java | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 idea/testData/refactoring/nameSuggester/ArrayList.kt diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java index efb8d885e06..3af45e9ddff 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/JetNameValidatorImpl.java @@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.cli.jvm.compiler.TipsManager; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; +import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetVisitorVoid; @@ -107,7 +108,7 @@ public class JetNameValidatorImpl implements JetNameValidator { Collection variants = TipsManager.getVariantsNoReceiver(expression, myBindingContext); for (DeclarationDescriptor variant : variants) { - if (variant.getName().equals(name)) { + if (variant.getName().equals(name) && variant instanceof VariableDescriptor) { result.set(false); return; } diff --git a/idea/testData/refactoring/nameSuggester/ArrayList.kt b/idea/testData/refactoring/nameSuggester/ArrayList.kt new file mode 100644 index 00000000000..a55df270e47 --- /dev/null +++ b/idea/testData/refactoring/nameSuggester/ArrayList.kt @@ -0,0 +1,7 @@ +fun main(args : Array) { + ArrayList // Select this expression and introduce a variable, you get arrayList1 proposed as a name +} +/* +arrayList +list +*/ \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java index 0e67ab2ca14..8ea10edabb8 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/nameSuggester/JetNameSuggesterTest.java @@ -35,6 +35,10 @@ import java.util.Arrays; * Date: 07.02.12 */ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase { + public void testArrayList() { + doTest(); + } + public void testGetterSure() { doTest(); }