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

GitOrigin-RevId: e96732d810ae6a0f1ffa44a0d5cc11d4c0f50d06
This commit is contained in:
Mikhail Pyltsin
2025-01-20 20:57:08 +00:00
committed by intellij-monorepo-bot
parent c6bf99c010
commit f9bd873664
@@ -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;