private @Nullable Info getInfoInner(@NotNull PsiElement element) {
    if (Registry.is("ide.jvm.run.marker") ||
        !isIdentifier(element) ||
        ApplicationRunLineMarkerHider.shouldHideRunLineMarker(element)) {
      return null;
    }

    PsiElement parent = element.getParent();
    if (parent instanceof PsiClass aClass) {
      if (!PsiMethodUtil.hasMainInClass(aClass)) return null;
      if (PsiTreeUtil.getParentOfType(aClass, PsiImplicitClass.class) != null) return null;
    }
    else if (parent instanceof PsiMethod method) {
      if (!"main".equals(method.getName()) || !PsiMethodUtil.isMainMethod(method)) return null;
      PsiClass containingClass = method.getContainingClass();
      if (containingClass == null) return null;
      if (!(containingClass instanceof PsiImplicitClass) && PsiTreeUtil.getParentOfType(containingClass, PsiImplicitClass.class) != null) {
        return null;
      }
      if (!PsiMethodUtil.MAIN_CLASS.value(containingClass)) return null;
      PsiMethod candidateMainMethod = PsiMethodUtil.findMainMethodInClassOrParent(containingClass);
      if (candidateMainMethod != method) return null;
    }
    else {
      return null;
    }
    if (JavaHighlightUtil.isJavaHashBangScript(element.getContainingFile())) {
      return null;
    }

    AnAction[] actions = ExecutorAction.getActions(Integer.MAX_VALUE);
    return new Info(AllIcons.RunConfigurations.TestState.Run, actions);
  }
private @Nullable Info getInfoInner(@NotNull PsiElement element)