[java-run] IDEA-365965 Support JEP 495. Filter non-static methods in abstract classes

(cherry picked from commit e96732d810ae6a0f1ffa44a0d5cc11d4c0f50d06)

GitOrigin-RevId: 5c2bb0dc9e19306adfee47c8667c7c3d98b5d064
This commit is contained in:
Mikhail Pyltsin
2025-01-20 19:52:36 +01:00
committed by intellij-monorepo-bot
parent e6ec1394ca
commit 35c774bf7d

View File

@@ -209,6 +209,8 @@ public final class AppMainV2 {
Class<?> last = classesToVisit.removeLast();
Method[] declaredMethods = last.getDeclaredMethods();
for (Method method : declaredMethods) {
//it is impossible to call non-static method for abstract class
if (Modifier.isAbstract(aClass.getModifiers()) && !Modifier.isStatic(method.getModifiers())) continue;
MainMethodStatus status = getMainMethodStatus(method, java21Preview ? MainMethodSearchMode.NON_STATIC_METHOD : MainMethodSearchMode.ALL_METHOD);
if (status == MainMethodStatus.WithArgs) {
return method;