diff options
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java')
-rw-r--r-- | java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java b/java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java index 6a1ce9b2e82d..0340029fa713 100644 --- a/java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java +++ b/java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java @@ -255,8 +255,13 @@ public class DataFlowRunner { private void checkEnvironment(DataFlowRunner runner, DfaMemoryState memState, @Nullable PsiElement anchor) { if (myClassParent == anchor) { - DfaMemoryState copy = memState.createCopy(); + DfaMemoryStateImpl copy = (DfaMemoryStateImpl)memState.createCopy(); copy.flushFields(runner); + Set<DfaVariableValue> vars = new HashSet<DfaVariableValue>(copy.getVariableStates().keySet()); + for (DfaVariableValue value : vars) { + copy.flushDependencies(value); + } + myClosureStates.add(copy); } } |