Fixed KT-2483 "Add import" quick fix offers adding import to non-API class

#KT-2483 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-02-10 13:14:47 +03:00
parent 546836d5dd
commit b091eaa3cd
5 changed files with 28 additions and 3 deletions
@@ -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");