From 4ba35f1c46450bf3d599205485b841956405fcc9 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 31 Aug 2023 15:51:40 +0200 Subject: [PATCH] inspection optimization: reuse the meta-language matching languages cache GitOrigin-RevId: 89e3c3a780cfb95d2ae0434d955b94ca1d5f443b --- .../codeInspection/ex/ToolLanguageUtil.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/platform/analysis-api/src/com/intellij/codeInspection/ex/ToolLanguageUtil.java b/platform/analysis-api/src/com/intellij/codeInspection/ex/ToolLanguageUtil.java index da83ca8a57ca..00ec28ab70c3 100644 --- a/platform/analysis-api/src/com/intellij/codeInspection/ex/ToolLanguageUtil.java +++ b/platform/analysis-api/src/com/intellij/codeInspection/ex/ToolLanguageUtil.java @@ -69,20 +69,19 @@ public final class ToolLanguageUtil { return false; } - public static boolean isToolLanguageOneOf(@NotNull Set elementDialectIds, @NotNull String languageId, boolean applyToDialects) { - if (elementDialectIds.contains(languageId)) { + public static boolean isToolLanguageOneOf(@NotNull Set elementDialectIds, @NotNull String toolLanguageId, boolean applyToDialects) { + if (elementDialectIds.contains(toolLanguageId)) { return true; } - Language language = Language.findLanguageByID(languageId); + Language language = Language.findLanguageByID(toolLanguageId); if (language == null) { // unknown language in plugin.xml, ignore return false; } - if (language instanceof MetaLanguage) { - return !ContainerUtil.process(Language.getRegisteredLanguages(), registeredLanguage -> - !((MetaLanguage)language).matchesLanguage(registeredLanguage) - || !existsDialectOneOf(elementDialectIds, registeredLanguage, applyToDialects)); + if (language instanceof MetaLanguage metaLanguage) { + return ContainerUtil.exists(metaLanguage.getMatchingLanguages(), registeredLanguage -> + existsDialectOneOf(elementDialectIds, registeredLanguage, applyToDialects)); } return existsDialectOneOf(elementDialectIds, language, applyToDialects); }