summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/codeInspection/dataFlow/DataFlowRunner.java
diff options
context:
space:
mode:
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.java7
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);
}
}