diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalAnnotator.java b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalAnnotator.java index 07a0c0c0681a..113fd2ac4846 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalAnnotator.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalAnnotator.java @@ -34,7 +34,6 @@ class CanBeFinalAnnotator extends RefGraphAnnotatorEx { if (refElement instanceof RefClass refClass) { if (refClass.isEntry()) { ((RefClassImpl)refClass).setFlag(false, CAN_BE_FINAL_MASK); - return; } for (RefClass baseClass : refClass.getBaseClasses()) { baseClass.initializeIfNeeded(); @@ -98,14 +97,7 @@ class CanBeFinalAnnotator extends RefGraphAnnotatorEx { if (refElement instanceof RefClass) { final PsiClass psiClass = ObjectUtils.tryCast(refElement.getPsiElement(), PsiClass.class); if (psiClass != null) { - - if (refElement.isEntry()) { - ((RefClassImpl)refElement).setFlag(false, CAN_BE_FINAL_MASK); - } - - PsiField[] psiFields = psiClass.getFields(); - Set allFields = new HashSet<>(); ContainerUtil.addAll(allFields, psiFields); List instanceInitializerInitializedFields = new ArrayList<>(); diff --git a/java/java-tests/testData/inspection/canBeFinal/Deprecated/expected.xml b/java/java-tests/testData/inspection/canBeFinal/Deprecated/expected.xml new file mode 100644 index 000000000000..580a889dbfd6 --- /dev/null +++ b/java/java-tests/testData/inspection/canBeFinal/Deprecated/expected.xml @@ -0,0 +1,3 @@ + + + diff --git a/java/java-tests/testData/inspection/canBeFinal/Deprecated/src/Test.java b/java/java-tests/testData/inspection/canBeFinal/Deprecated/src/Test.java new file mode 100644 index 000000000000..9cc30bf11dc9 --- /dev/null +++ b/java/java-tests/testData/inspection/canBeFinal/Deprecated/src/Test.java @@ -0,0 +1,6 @@ +@Deprecated +public class A extends B { + +} +class B { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/CanBeFinalInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/CanBeFinalInspectionTest.java index 1b76fd73ae7d..21ce8b089b88 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/CanBeFinalInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/CanBeFinalInspectionTest.java @@ -1,5 +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-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.codeInspection; import com.intellij.JavaTestUtil; @@ -26,7 +25,7 @@ public class CanBeFinalInspectionTest extends JavaInspectionTestCase { } private void doTest(final CanBeFinalInspection tool) { - doTest("canBeFinal/" + getTestName(false), tool); + doTest("canBeFinal/" + getTestName(false), tool, false, true); } public void testsimpleClassInheritanceField() { @@ -36,6 +35,10 @@ public class CanBeFinalInspectionTest extends JavaInspectionTestCase { public void testassignedFromLambda() { doTest(); } + + public void testDeprecated() { + doTest(); + } public void testassignedFromLambdaInClassInitializer() { doTest();