From 1c25723764d99f0cb6d39ad19d5a975dd14ff821 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 20 Mar 2014 12:02:05 +0400 Subject: [PATCH] Don't suggest non-stable parameter names in completion --- .../plugin/completion/KotlinNamedParametersContributor.kt | 2 ++ .../completion/basic/custom/JavaMethodNamedArguments.kt | 6 ++++++ .../basic/custom/JavaMethodNamedArgumentsSrc/JavaClass.java | 5 +++++ .../completion/JvmWithLibBasicCompletionTestGenerated.java | 5 +++++ 4 files changed, 18 insertions(+) create mode 100644 idea/testData/completion/basic/custom/JavaMethodNamedArguments.kt create mode 100644 idea/testData/completion/basic/custom/JavaMethodNamedArgumentsSrc/JavaClass.java diff --git a/idea/src/org/jetbrains/jet/plugin/completion/KotlinNamedParametersContributor.kt b/idea/src/org/jetbrains/jet/plugin/completion/KotlinNamedParametersContributor.kt index aad793ad27b..2a94ac109c0 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/KotlinNamedParametersContributor.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/KotlinNamedParametersContributor.kt @@ -88,6 +88,8 @@ public class KotlinNamedParametersContributor : CompletionContributor() { val functionDescriptors = callReference.resolveToDescriptors().map { it as? FunctionDescriptor }.filterNotNull() for (funDescriptor in functionDescriptors) { + if (!funDescriptor.hasStableParameterNames()) continue + val usedArguments = QuickFixUtil.getUsedParameters(callElement, valueArgument, funDescriptor) for (parameter in funDescriptor.getValueParameters()) { diff --git a/idea/testData/completion/basic/custom/JavaMethodNamedArguments.kt b/idea/testData/completion/basic/custom/JavaMethodNamedArguments.kt new file mode 100644 index 00000000000..d0c7339d3e7 --- /dev/null +++ b/idea/testData/completion/basic/custom/JavaMethodNamedArguments.kt @@ -0,0 +1,6 @@ +import lib.JavaClass + +fun test() = JavaClass().foo() + +// ABSENT: p0 +// ABSENT: paramName diff --git a/idea/testData/completion/basic/custom/JavaMethodNamedArgumentsSrc/JavaClass.java b/idea/testData/completion/basic/custom/JavaMethodNamedArgumentsSrc/JavaClass.java new file mode 100644 index 00000000000..3b86735a88f --- /dev/null +++ b/idea/testData/completion/basic/custom/JavaMethodNamedArgumentsSrc/JavaClass.java @@ -0,0 +1,5 @@ +package lib; + +public class JavaClass { + public void foo(int paramName) {} +} diff --git a/idea/tests/org/jetbrains/jet/completion/JvmWithLibBasicCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/JvmWithLibBasicCompletionTestGenerated.java index bed4a3dfdcb..7a24acd46a9 100644 --- a/idea/tests/org/jetbrains/jet/completion/JvmWithLibBasicCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/JvmWithLibBasicCompletionTestGenerated.java @@ -36,6 +36,11 @@ public class JvmWithLibBasicCompletionTestGenerated extends AbstractJvmWithLibBa JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/completion/basic/custom"), Pattern.compile("^(.+)\\.kt$"), false); } + @TestMetadata("JavaMethodNamedArguments.kt") + public void testJavaMethodNamedArguments() throws Exception { + doTest("idea/testData/completion/basic/custom/JavaMethodNamedArguments.kt"); + } + @TestMetadata("TopLevelNonImportedExtFun.kt") public void testTopLevelNonImportedExtFun() throws Exception { doTest("idea/testData/completion/basic/custom/TopLevelNonImportedExtFun.kt");