diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java index 451379539eda..12789a0e9913 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java @@ -186,10 +186,10 @@ public final class ExplicitToImplicitClassMigrationInspection extends AbstractBa } for (SmartPsiElementPointer pointer : pointers) { - PsiImportStatementBase pointerElement = pointer.getElement(); - if (pointerElement == null) continue; - if (!pointerElement.isOnDemand()) continue; - ReplaceOnDemandImportIntention.replaceOnDemand(pointerElement); + PsiImportStatementBase importStatementBase = pointer.getElement(); + if (importStatementBase == null) continue; + if (!importStatementBase.isOnDemand()) continue; + ReplaceOnDemandImportIntention.replaceOnDemand(importStatementBase); } } PsiClass psiClass = ObjectUtils.tryCast(element, PsiClass.class); diff --git a/java/java-tests/testData/inspection/explicitToImplicitClassMigration/afterWithImportConflictDemandsOverModule.java b/java/java-tests/testData/inspection/explicitToImplicitClassMigration/afterWithImportConflictDemandsOverModule.java new file mode 100644 index 000000000000..d7c8f8fa6d6c --- /dev/null +++ b/java/java-tests/testData/inspection/explicitToImplicitClassMigration/afterWithImportConflictDemandsOverModule.java @@ -0,0 +1,6 @@ +import p.List; + +public static void main(String[] args) { + List a = null; + System.out.println("Hello, world!"); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/explicitToImplicitClassMigration/beforeWithImportConflictDemandsOverModule.java b/java/java-tests/testData/inspection/explicitToImplicitClassMigration/beforeWithImportConflictDemandsOverModule.java new file mode 100644 index 000000000000..8844889c7c20 --- /dev/null +++ b/java/java-tests/testData/inspection/explicitToImplicitClassMigration/beforeWithImportConflictDemandsOverModule.java @@ -0,0 +1,9 @@ +import p.*; + +public class beforeWithImportConflictDemandsOverModule { + + public static void main(String[] args) { + List a = null; + System.out.println("Hello, world!"); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/afterConflictModuleImportDemandOverModule.java b/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/afterConflictModuleImportDemandOverModule.java new file mode 100644 index 000000000000..2df4f291df15 --- /dev/null +++ b/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/afterConflictModuleImportDemandOverModule.java @@ -0,0 +1,7 @@ +import test.List; + +public class beforeConflictModuleImportDemandOverModule { + public static void main(String[] args) { + List a = null; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/beforeConflictModuleImportDemandOverModule.java b/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/beforeConflictModuleImportDemandOverModule.java new file mode 100644 index 000000000000..e726fdf29926 --- /dev/null +++ b/java/java-tests/testData/inspection/implicitToExplicitClassBackwardMigration/beforeConflictModuleImportDemandOverModule.java @@ -0,0 +1,5 @@ +import test.*; + +public static void main(String[] args) { + List a = null; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/ExplicitToImplicitClassMigrationInspectionInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/ExplicitToImplicitClassMigrationInspectionInspectionTest.java index 6491f33441ed..28c2da366f48 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/ExplicitToImplicitClassMigrationInspectionInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/ExplicitToImplicitClassMigrationInspectionInspectionTest.java @@ -5,6 +5,8 @@ import com.intellij.JavaTestUtil; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInspection.ExplicitToImplicitClassMigrationInspection; import com.intellij.java.JavaBundle; +import com.intellij.pom.java.JavaFeature; +import com.intellij.testFramework.IdeaTestUtil; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; @@ -49,6 +51,19 @@ public class ExplicitToImplicitClassMigrationInspectionInspectionTest extends Li doTest(); } + public void testWithImportConflictDemandsOverModule() { + IdeaTestUtil.withLevel(getModule(), JavaFeature.PACKAGE_IMPORTS_SHADOW_MODULE_IMPORTS.getMinimumLevel(), () -> { + myFixture.addClass( + """ + package p; + public class List{} + """ + ); + doTest(); + } + ); + } + private void doNotFind() { myFixture.enableInspections(new ExplicitToImplicitClassMigrationInspection()); myFixture.testHighlighting(true, false, true, "before" + getTestName(false) + ".java"); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/ImplicitToExplicitClassBackwardMigrationInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/ImplicitToExplicitClassBackwardMigrationInspectionTest.java index 93153c1a163f..982bb4b3080f 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/ImplicitToExplicitClassBackwardMigrationInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/ImplicitToExplicitClassBackwardMigrationInspectionTest.java @@ -4,6 +4,8 @@ package com.intellij.java.codeInspection; import com.intellij.JavaTestUtil; import com.intellij.codeInspection.ImplicitToExplicitClassBackwardMigrationInspection; import com.intellij.java.JavaBundle; +import com.intellij.pom.java.JavaFeature; +import com.intellij.testFramework.IdeaTestUtil; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase; import org.jetbrains.annotations.NotNull; @@ -54,4 +56,14 @@ public class ImplicitToExplicitClassBackwardMigrationInspectionTest extends Ligh """); doTest(); } + + public void testConflictModuleImportDemandOverModule() { + IdeaTestUtil.withLevel(getModule(), JavaFeature.PACKAGE_IMPORTS_SHADOW_MODULE_IMPORTS.getMinimumLevel(), () -> { + myFixture.addClass(""" + package test; + public class List {} + """); + doTest(); + }); + } } \ No newline at end of file