### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java,v retrieving revision 1.48 diff -u -r1.48 DoStatement.java --- compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java 22 Mar 2006 14:37:45 -0000 1.48 +++ compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java 23 Mar 2006 10:53:19 -0000 @@ -110,7 +110,8 @@ (loopingContext.initsOnBreak.tagBits & FlowInfo.UNREACHABLE) != 0 ? loopingContext.initsOnBreak : - flowInfo.addInitializationsFrom(loopingContext.initsOnBreak), // recover upstream null info + flowInfo.unconditionalCopy().addInitializationsFrom(loopingContext.initsOnBreak), + // recover upstream null info isConditionOptimizedTrue, (condInfo.tagBits & FlowInfo.UNREACHABLE) == 0 ? flowInfo.addInitializationsFrom(condInfo.initsWhenFalse()) : condInfo, #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java,v retrieving revision 1.8 diff -u -r1.8 FlowAnalysisTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java 16 Mar 2006 14:46:49 -0000 1.8 +++ src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java 23 Mar 2006 10:53:21 -0000 @@ -664,6 +664,31 @@ "The local variable x may not have been initialized\n" + "----------\n"); } +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132974 +public void test024() { + this.runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + " public void foo(boolean b) {\n" + + " final Object l;\n" + + " do {\n" + + " if (b) {\n" + + " l = new Object();\n" + + " break;\n" + + " }\n" + + " } while (false);\n" + + " l.toString();\n" + + " }\n" + + "}" + }, + "----------\n" + + "1. ERROR in X.java (at line 10)\n" + + " l.toString();\n" + + " ^\n" + + "The local variable l may not have been initialized\n" + + "----------\n"); +} public static Class testClass() { return FlowAnalysisTest.class; }