Report diagnostic on import with explicit import class if class was imported earlier.

This commit is contained in:
Stanislav Erokhin
2015-09-24 14:07:43 +03:00
parent 6c1738e11a
commit fc9aa87a05
18 changed files with 215 additions and 104 deletions
@@ -82,7 +82,7 @@ public fun ResolutionFacade.resolveImportReference(
val importDirective = JetPsiFactory(project).createImportDirective(ImportPath(fqName, false))
val qualifiedExpressionResolver = this.getFrontendService(moduleDescriptor, QualifiedExpressionResolver::class.java)
return qualifiedExpressionResolver.processImportReference(
importDirective, moduleDescriptor, BindingTraceContext(), packageFragmentForVisibilityCheck = null).getAllDescriptors()
importDirective, moduleDescriptor, BindingTraceContext(), packageFragmentForVisibilityCheck = null)?.getAllDescriptors() ?: emptyList()
}
//NOTE: idea default API returns module search scope for file under module but not in source or production source (for example, test data )
@@ -0,0 +1,5 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.ArrayList
import java.util.ArrayList<caret>
@@ -0,0 +1,4 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.ArrayList
@@ -0,0 +1,5 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.ArrayList as foo
import java.util.ArrayList as foo<caret>
@@ -0,0 +1,4 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.ArrayList as foo
@@ -723,6 +723,18 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/conflictingImports/removeConflictingImport.kt");
doTest(fileName);
}
@TestMetadata("removeDuplicateImport.kt")
public void testRemoveDuplicateImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/conflictingImports/removeDuplicateImport.kt");
doTest(fileName);
}
@TestMetadata("removeDuplicateImportWithAlias.kt")
public void testRemoveDuplicateImportWithAlias() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/conflictingImports/removeDuplicateImportWithAlias.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/quickfix/createFromUsage")