Fixed KT-2483 "Add import" quick fix offers adding import to non-API class
#KT-2483 Fixed
This commit is contained in:
@@ -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<Jet
|
||||
val indicesHelper = KotlinIndicesHelper(file.getProject(), resolutionFacade, bindingContext, searchScope, moduleDescriptor, ::isVisible)
|
||||
|
||||
if (!element.isImportDirectiveExpression() && !JetPsiUtil.isSelectorInQualified(element)) {
|
||||
result.addAll(getClasses(referenceName, file, searchScope))
|
||||
getClasses(referenceName, file, searchScope).filterTo(result, ::isVisible)
|
||||
result.addAll(getTopLevelCallables(referenceName, element, indicesHelper))
|
||||
}
|
||||
|
||||
@@ -159,7 +158,6 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction<Jet
|
||||
|
||||
private fun getClasses(name: String, file: JetFile, searchScope: GlobalSearchScope): Collection<DeclarationDescriptor>
|
||||
= getShortNamesCache(file).getClassesByName(name, searchScope)
|
||||
.filter { JetPsiHeuristicsUtil.isAccessible(it, file) }
|
||||
.map { element.getResolutionFacade().psiClassToDescriptor(it) }
|
||||
.filterNotNull()
|
||||
.toSet()
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// "class com.intellij.codeInsight.daemon.impl.quickfix.ImportClassFixBase" "false"
|
||||
// ERROR: Unresolved reference: Nested
|
||||
|
||||
fun test() {
|
||||
Nested
|
||||
}
|
||||
@@ -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() {
|
||||
<caret>Nested
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package sometest
|
||||
|
||||
private class PrivateClass {
|
||||
class Nested
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user