From b091eaa3cd5e28f3099c28753bc304f1ad101062 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 10 Feb 2015 13:14:47 +0300 Subject: [PATCH] Fixed KT-2483 "Add import" quick fix offers adding import to non-API class #KT-2483 Fixed --- .../jetbrains/kotlin/idea/quickfix/AutoImportFix.kt | 4 +--- .../autoImports/noImportForNestedInPrivate.after.kt | 6 ++++++ .../noImportForNestedInPrivate.before.Main.kt | 10 ++++++++++ .../noImportForNestedInPrivate.before.data.Sample.kt | 5 +++++ .../idea/quickfix/QuickFixMultiFileTestGenerated.java | 6 ++++++ 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 idea/testData/quickfix/autoImports/noImportForNestedInPrivate.after.kt create mode 100644 idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt create mode 100644 idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.data.Sample.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt index 44ebcbe5cca..6092cd6d806 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AutoImportFix.kt @@ -39,7 +39,6 @@ import org.jetbrains.kotlin.idea.caches.JetShortNamesCache import org.jetbrains.kotlin.idea.caches.KotlinIndicesHelper import org.jetbrains.kotlin.idea.caches.resolve.* import org.jetbrains.kotlin.idea.project.ProjectStructureUtil -import org.jetbrains.kotlin.idea.util.JetPsiHeuristicsUtil import java.util.ArrayList import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.resolve.BindingContext @@ -142,7 +141,7 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction = getShortNamesCache(file).getClassesByName(name, searchScope) - .filter { JetPsiHeuristicsUtil.isAccessible(it, file) } .map { element.getResolutionFacade().psiClassToDescriptor(it) } .filterNotNull() .toSet() diff --git a/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.after.kt b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.after.kt new file mode 100644 index 00000000000..5e51c0654a0 --- /dev/null +++ b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.after.kt @@ -0,0 +1,6 @@ +// "class com.intellij.codeInsight.daemon.impl.quickfix.ImportClassFixBase" "false" +// ERROR: Unresolved reference: Nested + +fun test() { + Nested +} \ No newline at end of file diff --git a/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt new file mode 100644 index 00000000000..3d8c222c64d --- /dev/null +++ b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt @@ -0,0 +1,10 @@ +// "class com.intellij.codeInsight.daemon.impl.quickfix.ImportClassFixBase" "false" +// ACTION: Create local variable 'Nested' +// ACTION: Create object 'Nested' +// ACTION: Create parameter 'Nested' +// ACTION: Create property 'Nested' +// ERROR: Unresolved reference: Nested + +fun test() { + Nested +} \ No newline at end of file diff --git a/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.data.Sample.kt b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.data.Sample.kt new file mode 100644 index 00000000000..fdd59561f7b --- /dev/null +++ b/idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.data.Sample.kt @@ -0,0 +1,5 @@ +package sometest + +private class PrivateClass { + class Nested +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index f3fb2a13482..a89ce326d92 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -152,6 +152,12 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes doTestWithExtraFile(fileName); } + @TestMetadata("noImportForNestedInPrivate.before.Main.kt") + public void testNoImportForNestedInPrivate() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt"); + doTestWithExtraFile(fileName); + } + @TestMetadata("noImportForPrivateClass.before.Main.kt") public void testNoImportForPrivateClass() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/noImportForPrivateClass.before.Main.kt");