From 9b0b477c921271040ca167769def73712e51cc53 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 1 Apr 2021 11:41:49 +0700 Subject: [PATCH] [java-psi] LightFieldBuilder: make hasInitializer and getInitializer consistent Fixes IDEA-265211 2020.3 Update is causing a lombok error using log in static block Co-authored-by: Michail Plushnikov GitOrigin-RevId: 76f271c26948d4f6815a0404723c8e0466fb0c1e --- .../psi/impl/light/LightFieldBuilder.java | 5 +++++ .../lomboktest/LombokHighlightingTest.java | 4 ++++ .../highlighting/LombokStaticVars.java | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 plugins/lombok/testData/highlighting/LombokStaticVars.java diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightFieldBuilder.java b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightFieldBuilder.java index 5bbb87e2ace1..930c18fe56cb 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/light/LightFieldBuilder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/light/LightFieldBuilder.java @@ -59,6 +59,11 @@ public class LightFieldBuilder extends LightVariableBuilder i return myInitializer; } + @Override + public boolean hasInitializer() { + return myInitializer != null; + } + @Override public PsiDocComment getDocComment() { return myDocComment; diff --git a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java index 924c94cbba7f..bb14eabcf11e 100644 --- a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java +++ b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java @@ -49,6 +49,10 @@ public class LombokHighlightingTest extends LightDaemonAnalyzerTestCase { public void testLombokBasics() { doTest(); } + public void testLombokStaticVars() { + doTest(); + } + @NotNull @Override protected LightProjectDescriptor getProjectDescriptor() { diff --git a/plugins/lombok/testData/highlighting/LombokStaticVars.java b/plugins/lombok/testData/highlighting/LombokStaticVars.java new file mode 100644 index 000000000000..0aea987c707b --- /dev/null +++ b/plugins/lombok/testData/highlighting/LombokStaticVars.java @@ -0,0 +1,22 @@ +package org.slf4j; + +import lombok.extern.slf4j.Slf4j; + +interface Logger { + void info(String msg); +} + +@Slf4j +public class LombokStaticVars { + static { + log.info("This should not produce error: Variable 'log' might not have been initialized"); + } + + public static final Runnable LAMDA = () -> { + log.info("This should not produce error: Variable 'log' might not have been initialized"); + }; + + public static void main(String[] args) { + LAMDA.run(); + } +}