Auto-import popup to work for ambiguous class name
This commit is contained in:
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.idea.quickfix.ImportInsertHelper
|
|||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.JetFile
|
import org.jetbrains.kotlin.psi.JetFile
|
||||||
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
||||||
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Automatically adds import directive to the file for resolving reference.
|
* Automatically adds import directive to the file for resolving reference.
|
||||||
@@ -114,7 +115,7 @@ public class JetAddImportAction(
|
|||||||
override fun run() {
|
override fun run() {
|
||||||
ApplicationManager.getApplication().runWriteAction {
|
ApplicationManager.getApplication().runWriteAction {
|
||||||
val file = element.getContainingFile() as JetFile
|
val file = element.getContainingFile() as JetFile
|
||||||
ImportInsertHelper.getInstance().addImportDirectiveIfNeeded(selectedImport, file)
|
ImportInsertHelper.getInstance().writeImportToFile(ImportPath(selectedImport, false), file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, QuickFixBundle.message("add.import"), null)
|
}, QuickFixBundle.message("add.import"), null)
|
||||||
|
|||||||
@@ -156,7 +156,6 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction<Jet
|
|||||||
result.addAll(getExtensions(referenceName, element, indicesHelper))
|
result.addAll(getExtensions(referenceName, element, indicesHelper))
|
||||||
|
|
||||||
return result
|
return result
|
||||||
.filter { ImportInsertHelper.getInstance().needImport(ImportPath(it.fqName, false), file) }
|
|
||||||
.sortBy { it.priority }
|
.sortBy { it.priority }
|
||||||
.map { it.fqName }
|
.map { it.fqName }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
// "Import" "true"
|
||||||
|
// ERROR: Unresolved reference: Date
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
import dependency.*
|
||||||
|
import dependency.Date
|
||||||
|
|
||||||
|
fun foo(d: Date<caret>) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// "Import" "true"
|
||||||
|
// ERROR: Unresolved reference: Date
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
import dependency.*
|
||||||
|
|
||||||
|
fun foo(d: Date<caret>) {
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package dependency
|
||||||
|
|
||||||
|
class Date
|
||||||
@@ -56,6 +56,12 @@ public class QuickFixMultiFileTestGenerated extends AbstractQuickFixMultiFileTes
|
|||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/autoImports"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/autoImports"), Pattern.compile("^(\\w+)\\.before\\.Main\\.kt$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ambiguousClassName.before.Main.kt")
|
||||||
|
public void testAmbiguousClassName() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/ambiguousClassName.before.Main.kt");
|
||||||
|
doTestWithExtraFile(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("classImport.before.Main.kt")
|
@TestMetadata("classImport.before.Main.kt")
|
||||||
public void testClassImport() throws Exception {
|
public void testClassImport() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/classImport.before.Main.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/classImport.before.Main.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user