From 1af524b889a0e00f3fc485d69e11c1d7fb115135 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 30 Nov 2012 16:16:39 +0100 Subject: [PATCH] field may be final: ignore throw clause when field was not assigned (IDEA-96018) --- .../src/com/siyeh/ig/psiutils/FinalUtils.java | 5 +++-- .../style/field_final/FieldMayBeFinal.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/FinalUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/FinalUtils.java index 6ed4cfaec704..143da3cfdd17 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/FinalUtils.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/FinalUtils.java @@ -630,8 +630,9 @@ public class FinalUtils { } private void satisfyVacuously() { - definitelyAssigned = true; - definitelyUnassigned = true; + if (definitelyAssigned) { + definitelyUnassigned = true; + } } private static boolean isPrePostFixExpression( diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/field_final/FieldMayBeFinal.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/field_final/FieldMayBeFinal.java index c0d4b9886655..39803b92a53e 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/field_final/FieldMayBeFinal.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/field_final/FieldMayBeFinal.java @@ -398,4 +398,21 @@ class Q implements Iterator { public void remove() { throw new UnsupportedOperationException(); } +} +class R { + private static final String someStaticStuff; + static { + try { + someStaticStuff = ""; + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + private String someInjectedStuff; + + public String getSomeInjectedStuff() { + return someInjectedStuff; + } } \ No newline at end of file