From 5d96196ff1553672f6fa81589c0c7269e2a3a297 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 7 Nov 2013 17:06:32 +0100 Subject: [PATCH] dfa: flush resource variables when leaving try block --- .../codeInspection/dataFlow/ControlFlowAnalyzer.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java index 7a89381553f8..49ff26c59321 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java @@ -312,6 +312,14 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { } } } + else if (parent instanceof PsiTryStatement) { + PsiResourceList list = ((PsiTryStatement)parent).getResourceList(); + if (list != null) { + for (PsiResourceVariable variable : list.getResourceVariables()) { + myCurrentFlow.removeVariable(variable); + } + } + } } @Override public void visitBlockStatement(PsiBlockStatement statement) {