diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/DefiniteAssignmentUtil.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/DefiniteAssignmentUtil.java index 63bb1bb87f57..a5932ffc0ec2 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/DefiniteAssignmentUtil.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/DefiniteAssignmentUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -130,8 +130,8 @@ public final class DefiniteAssignmentUtil { } final boolean da = definiteAssignment.isDefinitelyAssigned(); final boolean du = definiteAssignment.isDefinitelyUnassigned(); - definiteAssignment.set(true, false); for (PsiMethod method : anonymousClass.getMethods()) { + definiteAssignment.set(true, false); checkCodeBlock(method.getBody(), definiteAssignment); } definiteAssignment.set(da, du); 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 ef750d4fe074..0189cc0a3678 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 @@ -885,4 +885,38 @@ class T58 { System.out.println("x = " + T58.x); x = 3; } -} \ No newline at end of file +} +class Foo { + + public interface Accessor { + + T get(); + + void set(T value); + + } + + private double myValue; // no warning expected here + + private final Accessor myValueAccessor; + + public Foo() { + myValue = 0; + + myValueAccessor = new Accessor() { + @Override + public Double get() { + return myValue; + } + + @Override + public void set(Double value) { + myValue = value; // assignment + } + }; + } + + public Accessor getValueAccessor() { + return myValueAccessor; + } +}