From ee73aef512d6b0e87a15a2b78497239a506ca5fd Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Tue, 2 Apr 2024 12:31:48 +0200 Subject: [PATCH] [java] Only log when API file can't be found for non-highest language level Makes it possible to add API files for language levels higher than the current HIGHEST like preview levels. GitOrigin-RevId: 0b6b572609238d5015ca2361fb8ab59df35d088f --- .../intellij/openapi/module/LanguageLevelUtil.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/java/java-analysis-api/src/com/intellij/openapi/module/LanguageLevelUtil.java b/java/java-analysis-api/src/com/intellij/openapi/module/LanguageLevelUtil.java index 6ce9f756be47..f89b668b570a 100644 --- a/java/java-analysis-api/src/com/intellij/openapi/module/LanguageLevelUtil.java +++ b/java/java-analysis-api/src/com/intellij/openapi/module/LanguageLevelUtil.java @@ -72,7 +72,7 @@ public final class LanguageLevelUtil { static { for (LanguageLevel level : LanguageLevel.values()) { - if (level.ordinal() >= LanguageLevel.HIGHEST.ordinal()) break; + if (level.ordinal() > LanguageLevel.HIGHEST.ordinal()) break; int feature = level.feature() + 1; ourPresentableShortMessage.put(level, feature >= 9 ? String.valueOf(feature) : "1." + feature); } @@ -97,8 +97,14 @@ public final class LanguageLevelUtil { URL resource = LanguageLevelUtil.class.getResource(fileName); if (resource != null) { result = loadSignatureList(resource); - } else { - Logger.getInstance(LanguageLevelUtil.class).warn("File not found: " + fileName); + } + else if (languageLevel.isAtLeast(LanguageLevel.HIGHEST)) { + // For preview or experimental language levels, there might be no API files yet. + // This is not considered an error because the API might not be stable yet. + result = Collections.emptySet(); + } + else { + Logger.getInstance(LanguageLevelUtil.class).error("File not found: " + fileName); result = Collections.emptySet(); } ourForbiddenAPI.put(languageLevel, new SoftReference<>(result));