From 468b7803de369c1b631aee447c3eac2f3fd3d1f9 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Wed, 22 May 2024 10:42:13 +0200 Subject: [PATCH] IJ-CR-134196 [java-highlighting] M IDEA-352727 Incomplete model with lombok - skip unresolved references with lombok GitOrigin-RevId: f5e7bc91b1e5634a0a042f0fd90b6be3ca943a28 --- .../daemon/impl/analysis/IncompleteModelUtil.java | 1 + .../lomboktest/LombokIncompleteModeHighlightingTest.java | 2 ++ .../testData/highlightingIncompleteMode/LombokLogs.java | 8 ++++++++ 3 files changed, 11 insertions(+) create mode 100644 plugins/lombok/testData/highlightingIncompleteMode/LombokLogs.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java index fc0e15cb00e3..f04d315aa2cc 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/IncompleteModelUtil.java @@ -227,6 +227,7 @@ final class IncompleteModelUtil { PsiExpression qualifier = refExpr.getQualifierExpression(); if (qualifier == null) { PsiClass psiClass = ClassUtils.getContainingClass(ref); + if (canBeAugmented(psiClass)) return true; while (psiClass != null) { if (!isHierarchyResolved(psiClass)) return true; psiClass = ClassUtils.getContainingClass(psiClass); diff --git a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokIncompleteModeHighlightingTest.java b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokIncompleteModeHighlightingTest.java index dbed7480d402..49c29d1e6a96 100644 --- a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokIncompleteModeHighlightingTest.java +++ b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokIncompleteModeHighlightingTest.java @@ -15,6 +15,8 @@ public class LombokIncompleteModeHighlightingTest extends LightDaemonAnalyzerTes public void testLombokBasicsWithExplicitImport() { doTest(); } + public void testLombokLogs() { doTest(); } + private void doTest() { doTest(getTestName(false) + ".java"); } diff --git a/plugins/lombok/testData/highlightingIncompleteMode/LombokLogs.java b/plugins/lombok/testData/highlightingIncompleteMode/LombokLogs.java new file mode 100644 index 000000000000..84c3147de21f --- /dev/null +++ b/plugins/lombok/testData/highlightingIncompleteMode/LombokLogs.java @@ -0,0 +1,8 @@ +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class LombokLogs { + public void validate() { + log.atInfo().log("Validating user"); + } +}