From 56d1fb8fb1bedd04e5eca0c92803007918a040cd Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Mon, 11 Jul 2022 14:49:07 +0200 Subject: [PATCH] [java-inspections] FieldCanBeLocalInspection: do not warn on volatile fields Somewhat helps IDEA-100902 False warning Field can be converted to a local variable GitOrigin-RevId: cb6a4c06d8939ef35fbbfbc1a98baabc977fee26 --- .../varScopeCanBeNarrowed/FieldCanBeLocalInspection.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java index ecae8bca1acd..0ce03c9f6e76 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java @@ -52,6 +52,11 @@ public class FieldCanBeLocalInspection extends AbstractBaseJavaLocalInspectionTo if (!field.isPhysical() || AnnotationUtil.isAnnotated(field, excludeAnnos, 0)) { continue; } + if (field.hasModifierProperty(PsiModifier.VOLATILE)) { + // Assume that fields marked as volatile can be modified concurrently + // (e.g. if the only method where they are changed is called from several threads) + continue; + } if (field.hasModifierProperty(PsiModifier.PRIVATE) && !(field.hasModifierProperty(PsiModifier.STATIC) && field.hasModifierProperty(PsiModifier.FINAL))) { candidates.add(field); }