From 3d0c3e225e8f09f316a3688dfcd1cc1e039b856f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 10 Jun 2015 16:05:27 +0300 Subject: [PATCH] Added test for second press completion for inaccessible --- .../idea/codeInsight/ReferenceVariantsHelper.kt | 1 - .../MoreSpecificExtensionIsPrivate.dependency.kt | 4 ++++ .../MoreSpecificExtensionIsPrivate.kt | 14 ++++++++++++++ .../MultiFileJvmBasicCompletionTestGenerated.java | 6 ++++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.dependency.kt create mode 100644 idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.kt diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt index 1476c1da491..836d369011a 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/codeInsight/ReferenceVariantsHelper.kt @@ -66,7 +66,6 @@ public class ReferenceVariantsHelper( val variants = getReferenceVariantsNoVisibilityFilter(expression, kindFilter, useRuntimeReceiverType, nameFilter) .filter(visibilityFilter) return ShadowedDeclarationsFilter(context, moduleDescriptor, project).filter(variants, expression) - //TODO: if visibility filter is empty, filter out shadowed can work incorrectly! } private fun getReferenceVariantsNoVisibilityFilter( diff --git a/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.dependency.kt b/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.dependency.kt new file mode 100644 index 00000000000..4c9350891df --- /dev/null +++ b/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.dependency.kt @@ -0,0 +1,4 @@ +package dependency + +fun Any.xxx(): Int = 1 +private fun ppp.C.xxx(): Int = 1 diff --git a/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.kt b/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.kt new file mode 100644 index 00000000000..95929301b2e --- /dev/null +++ b/idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/MoreSpecificExtensionIsPrivate.kt @@ -0,0 +1,14 @@ +package ppp + +import dependency.* + +class C + +fun foo(c: C) { + c.xx +} + +// we should not include inaccessible extension even on the second completion because the call won't resolve into it anyway +// INVOCATION_COUNT: 2 +// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "() for Any in dependency", typeText: "Int" } +// NOTHING_ELSE diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java index d862fc0ad17..06669c31a53 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java @@ -113,6 +113,12 @@ public class MultiFileJvmBasicCompletionTestGenerated extends AbstractMultiFileJ doTest(fileName); } + @TestMetadata("MoreSpecificExtensionIsPrivate") + public void testMoreSpecificExtensionIsPrivate() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/multifile/MoreSpecificExtensionIsPrivate/"); + doTest(fileName); + } + @TestMetadata("NoAutoInsertionOfNotImported") public void testNoAutoInsertionOfNotImported() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/multifile/NoAutoInsertionOfNotImported/");