private static LanguageLevel getLastIncompatibleLanguageLevelForSignature(@NotNull String signature, @NotNull LanguageLevel languageLevel) {
    Set<String> forbiddenApi = getForbiddenApi(languageLevel);
    if (forbiddenApi == null) return null;
    if (forbiddenApi.contains(signature)) return languageLevel;
    if (languageLevel.compareTo(LanguageLevel.HIGHEST) == 0) return null;
    LanguageLevel[] values = LanguageLevel.values();
    if (languageLevel.ordinal() == values.length - 1) return null;
    LanguageLevel nextLanguageLevel = values[languageLevel.ordinal() + 1];
    return getLastIncompatibleLanguageLevelForSignature(signature, nextLanguageLevel);
  }
private static LanguageLevel getLastIncompatibleLanguageLevelForSignature(@NotNull String signature, @NotNull LanguageLevel languageLevel)