Auto-import popup to work for ambiguous class name

This commit is contained in:
Valentin Kipyatkov
2015-01-21 16:31:11 +03:00
parent 0686629e49
commit ca2a46e42f
6 changed files with 28 additions and 2 deletions
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.idea.quickfix.ImportInsertHelper
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
import org.jetbrains.kotlin.resolve.ImportPath
/**
* Automatically adds import directive to the file for resolving reference.
@@ -114,7 +115,7 @@ public class JetAddImportAction(
override fun run() {
ApplicationManager.getApplication().runWriteAction {
val file = element.getContainingFile() as JetFile
ImportInsertHelper.getInstance().addImportDirectiveIfNeeded(selectedImport, file)
ImportInsertHelper.getInstance().writeImportToFile(ImportPath(selectedImport, false), file)
}
}
}, QuickFixBundle.message("add.import"), null)
@@ -156,7 +156,6 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction<Jet
result.addAll(getExtensions(referenceName, element, indicesHelper))
return result
.filter { ImportInsertHelper.getInstance().needImport(ImportPath(it.fqName, false), file) }
.sortBy { it.priority }
.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);
}
@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")
public void testClassImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/classImport.before.Main.kt");