diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java index c5d6494af3a0..7b7895a9db88 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInspection.localCanBeFinal; import com.intellij.codeInspection.*; @@ -158,6 +158,9 @@ public class LocalCanBeFinal extends AbstractBaseJavaLocalInspectionTool impleme @Override public void visitResourceVariable(PsiResourceVariable variable) { + if (PsiTreeUtil.getParentOfType(variable, PsiClass.class) != PsiTreeUtil.getParentOfType(body, PsiClass.class)) { + return; + } result.add(variable); } diff --git a/java/java-tests/testData/inspection/localCanBeFinal/Resource.java b/java/java-tests/testData/inspection/localCanBeFinal/Resource.java index 6003f3b594a6..b3c5474c271c 100644 --- a/java/java-tests/testData/inspection/localCanBeFinal/Resource.java +++ b/java/java-tests/testData/inspection/localCanBeFinal/Resource.java @@ -1,5 +1,4 @@ -import java.io.BufferedReader; -import java.io.FileReader; +import java.io.*; class Test { String m() { @@ -10,4 +9,18 @@ class Test { } return null; } + + void n() { + new Runnable() { + @Override + public void run() { + try (InputStream is = new FileInputStream(new File("b"))) { + System.out.println(is); + } + catch (final IOException e) { + throw new RuntimeException(e); + } + } + }; + } } \ No newline at end of file