From 874d090e21d8cc3fa5e66644f65329f32a8cfe4e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 24 Jul 2020 15:39:11 +0700 Subject: [PATCH] [java-highlighting] Report static fields that collide with record components Fixes IDEA-246454 bad code is green: record component already defined GitOrigin-RevId: 1b2a48c0eb0b543ec9d60d7ed3cf2b3aabc3330c --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 2 ++ .../advHighlightingRecords/RecordBasics.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index f75301751cd0..b73ec95afd82 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -651,6 +651,8 @@ public final class HighlightUtil { PsiField fieldByName = aClass.findFieldByName(variable.getName(), false); if (fieldByName != null && fieldByName != field) { oldVariable = fieldByName; + } else { + oldVariable = ContainerUtil.find(aClass.getRecordComponents(), c -> c.getName().equals(field.getName())); } } else { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java index f7b51ac785db..9e3adc221fee 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordBasics.java @@ -66,4 +66,7 @@ record ProhibitedMembers() { System.out.println("initializer"); } native void test(); +} +record StaticFieldCollides(int i) { + static int i; } \ No newline at end of file