[java] IDEA-374935 Wrong gutter for static inherited main method

(cherry picked from commit 1772d147ecd72520f81c1a9a567844a5779728cc)


(cherry picked from commit e7b73610078623fabd153da669e974f295b96420)

IJ-MR-169535

GitOrigin-RevId: 7887998c7f50daea5769198bef236f160a3a530a
This commit is contained in:
Mikhail Pyltsin
2025-06-27 14:51:35 +02:00
committed by intellij-monorepo-bot
parent a5ee975dd4
commit 5fa62ff23e
3 changed files with 17 additions and 4 deletions

View File

@@ -112,8 +112,7 @@ public final class PsiMethodUtil {
continue;
}
if (containingClass.isInterface() &&
mainMethod.hasModifierProperty(PsiModifier.STATIC) &&
!chooseMainMethodByParametersEnabled) {
mainMethod.hasModifierProperty(PsiModifier.STATIC)) {
continue;
}
}

View File

@@ -178,7 +178,7 @@ public class RunLineMarkerJava22Test extends LightJavaCodeInsightFixtureTestCase
class A implements B {}
""");
List<GutterMark> marks = myFixture.findAllGutters();
assertEquals(1, marks.size());
assertEquals(0, marks.size());
});
}

View File

@@ -63,7 +63,6 @@ public class RunLineMarkerTest extends LineMarkerTestCase {
assertEquals(ThreeState.YES, RunLineMarkerProvider.hadAnythingRunnable(myFixture.getFile().getVirtualFile()));
}
//todo fix for IDEA-374935
public void testRunLineMarkerOnInterface() {
IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_24, () -> {
myFixture.configureByText("Main.java", """
@@ -79,6 +78,21 @@ public class RunLineMarkerTest extends LineMarkerTestCase {
});
}
public void testRunLineMarkerOnInterface25() {
IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_25, () -> {
myFixture.configureByText("Main.java", """
public class Ma<caret>in implements I {}
interface I { public static void main(String[] args) {}
}
""");
assertEquals(ThreeState.UNSURE, RunLineMarkerProvider.hadAnythingRunnable(myFixture.getFile().getVirtualFile()));
assertEquals(0, myFixture.findGuttersAtCaret().size());
List<GutterMark> gutters = myFixture.findAllGutters();
assertEquals(2, gutters.size());
assertEquals(ThreeState.YES, RunLineMarkerProvider.hadAnythingRunnable(myFixture.getFile().getVirtualFile()));
});
}
public void testNoRunLineMarkerAnonymous() {
myFixture.configureByText("X.java", """
public class X {