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

GitOrigin-RevId: 1772d147ecd72520f81c1a9a567844a5779728cc
This commit is contained in:
Mikhail Pyltsin
2025-06-27 23:20:56 +00:00
committed by intellij-monorepo-bot
parent a499a54012
commit 3330c5c783
3 changed files with 17 additions and 4 deletions
@@ -112,8 +112,7 @@ public final class PsiMethodUtil {
continue;
}
if (containingClass.isInterface() &&
mainMethod.hasModifierProperty(PsiModifier.STATIC) &&
!chooseMainMethodByParametersEnabled) {
mainMethod.hasModifierProperty(PsiModifier.STATIC)) {
continue;
}
}
@@ -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());
});
}
@@ -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 {