From 1e3702d2b4359d2ff44d71b05417be62b382e6b5 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 18 Feb 2009 13:43:55 +0300 Subject: [PATCH] IDEADEV-34853 ("Field may be final" inspection false positive on double assignment) --- .../src/com/siyeh/ig/psiutils/InitializationUtils.java | 9 +++++++-- .../test/com/siyeh/igtest/style/field_final/FieldMayBeFinal.java | 9 +++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InitializationUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InitializationUtils.java index a79b61276a..3c1f82a0dd 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InitializationUtils.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/InitializationUtils.java @@ -73,13 +73,18 @@ public class InitializationUtils{ return false; } final PsiStatement[] statements = block.getStatements(); + int assignmentCount = 0; for(final PsiStatement statement : statements){ if(statementAssignsVariableOrFails(statement, variable, checkedMethods, strict)){ - return true; + if (strict) { + assignmentCount++; + } else { + return true; + } } } - return false; + return assignmentCount == 1; } private static boolean blockFails(@Nullable PsiCodeBlock block){ 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 445d42555f..2f7ab322ee 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 @@ -118,4 +118,13 @@ public class FieldMayBeFinal { } } } + + static class DoubleAssignment { + private String result; + + public DoubleAssignment() { + result = ""; + result = ""; + } + } } \ No newline at end of file -- 2.11.4.GIT