mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-inspections] IDEA-365059 Support JEP 494: Fix expand module imports
- modules shouldn't add implicitly imported classes GitOrigin-RevId: d18b9bc7783a478cec3e75f95542c410ae78acd8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a49e546e18
commit
c32067bfb3
@@ -7,6 +7,7 @@ import com.intellij.psi.util.ClassUtil;
|
||||
import com.intellij.psi.util.ImportsUtil;
|
||||
import com.siyeh.IntentionPowerPackBundle;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.ImportUtils;
|
||||
import com.siyeh.ipp.base.MCIntention;
|
||||
import com.siyeh.ipp.base.PsiElementPredicate;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -52,8 +53,13 @@ public final class ReplaceOnDemandImportIntention extends MCIntention {
|
||||
for (PsiClass aClass : classes) {
|
||||
aClass.accept(visitor);
|
||||
}
|
||||
final PsiClass[] importedClasses = visitor.getImportedClasses();
|
||||
Arrays.sort(importedClasses, new PsiClassComparator());
|
||||
ImportUtils.ImplicitImportChecker checker = ImportUtils.createImplicitImportChecker(javaFile);
|
||||
final PsiClass[] importedClasses = Arrays.stream(visitor.getImportedClasses())
|
||||
.filter(
|
||||
cl -> !(importStatementBase instanceof PsiImportModuleStatement) ||
|
||||
!checker.isImplicitlyImported(cl.getQualifiedName(), false))
|
||||
.sorted(new PsiClassComparator())
|
||||
.toArray(PsiClass[]::new);
|
||||
createImportStatements(importStatementBase, importedClasses, factory::createImportStatement);
|
||||
}
|
||||
else if (importStatementBase instanceof PsiImportStaticStatement) {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import module java<caret>.base;
|
||||
|
||||
public class ModuleImport {
|
||||
public static void main(String[] args) {
|
||||
List<String> a = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import java.util.A<caret>rrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ModuleImport {
|
||||
public static void main(String[] args) {
|
||||
List<String> a = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ public class ReplaceOnDemandImportIntentionTest extends IPPTestCase {
|
||||
|
||||
public void testStaticImport() { doTest(); }
|
||||
public void testModuleImport() { doTest(); }
|
||||
public void testModuleImportImplicitImport() { doTest(); }
|
||||
|
||||
@Override
|
||||
protected String getIntentionName() {
|
||||
|
||||
Reference in New Issue
Block a user