### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/ConditionalExpression.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ConditionalExpression.java,v retrieving revision 1.91 diff -u -r1.91 ConditionalExpression.java --- compiler/org/eclipse/jdt/internal/compiler/ast/ConditionalExpression.java 24 Nov 2008 13:13:43 -0000 1.91 +++ compiler/org/eclipse/jdt/internal/compiler/ast/ConditionalExpression.java 25 Nov 2008 12:26:25 -0000 @@ -52,7 +52,7 @@ // process the if-true part FlowInfo trueFlowInfo = flowInfo.initsWhenTrue().copy(); if (isConditionOptimizedFalse) { - if ((trueFlowInfo.reachMode() & FlowInfo.UNREACHABLE) == 0) { + if ((mode & FlowInfo.UNREACHABLE) == 0) { currentScope.problemReporter().fakeReachable(this.valueIfTrue); trueFlowInfo.setReachMode(FlowInfo.UNREACHABLE); } @@ -63,7 +63,7 @@ // process the if-false part FlowInfo falseFlowInfo = flowInfo.initsWhenFalse().copy(); if (isConditionOptimizedTrue) { - if ((falseFlowInfo.reachMode() & FlowInfo.UNREACHABLE) == 0) { + if ((mode & FlowInfo.UNREACHABLE) == 0) { currentScope.problemReporter().fakeReachable(this.valueIfFalse); falseFlowInfo.setReachMode(FlowInfo.UNREACHABLE); } #P org.eclipse.jdt.core.tests Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java =================================================================== RCS file: /home/cvs/numbat/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java,v retrieving revision 1.120 diff -u -r1.120 InitializationTest.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java 24 Nov 2008 13:13:50 -0000 1.120 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java 25 Nov 2008 12:26:28 -0000 @@ -2164,7 +2164,12 @@ " ^^^^^^^^^^^\n" + "Dead code\n" + "----------\n" + - "2. ERROR in X.java (at line 7)\n" + + "2. WARNING in X.java (at line 4)\n" + + " boolean ignore = false && (b = false) ? true : true; \n" + + " ^^^^\n" + + "Dead code\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + " if (true && (b = false)); \n" + " ^\n" + "The final field b may already have been assigned\n" + @@ -2187,12 +2192,17 @@ " ^^^^^^^^^^^\n" + "Dead code\n" + "----------\n" + - "2. ERROR in X.java (at line 4)\n" + + "2. WARNING in X.java (at line 4)\n" + + " boolean ignore = (false && (b = false) ? (b = true) : (b = false)); \n" + + " ^^^^^^^^^^\n" + + "Dead code\n" + + "----------\n" + + "3. ERROR in X.java (at line 4)\n" + " boolean ignore = (false && (b = false) ? (b = true) : (b = false)); \n" + " ^\n" + "The final field b may already have been assigned\n" + "----------\n" + - "3. ERROR in X.java (at line 4)\n" + + "4. ERROR in X.java (at line 4)\n" + " boolean ignore = (false && (b = false) ? (b = true) : (b = false)); \n" + " ^\n" + "The final field b may already have been assigned\n" + @@ -3044,7 +3054,12 @@ " ^^^^^^^^^^^^^^\n" + "Dead code\n" + "----------\n" + - "5. ERROR in X.java (at line 11)\n" + + "5. WARNING in X.java (at line 11)\n" + + " : (blank2 = 2); \n" + + " ^^^^^^^^^^^^\n" + + "Dead code\n" + + "----------\n" + + "6. ERROR in X.java (at line 11)\n" + " : (blank2 = 2); \n" + " ^^^^^^\n" + "The final local variable blank2 may already have been assigned\n" + @@ -3086,7 +3101,12 @@ " ^^^^^^^^^^^^^^\n" + "Dead code\n" + "----------\n" + - "4. ERROR in X.java (at line 11)\n" + + "4. WARNING in X.java (at line 10)\n" + + " ? 1 \n" + + " ^\n" + + "Dead code\n" + + "----------\n" + + "5. ERROR in X.java (at line 11)\n" + " : (blank2 = 2); \n" + " ^^^^^^\n" + "The final local variable blank2 may already have been assigned\n" + @@ -3131,7 +3151,12 @@ " ^^^^^^^^^^^^^^\n" + "Dead code\n" + "----------\n" + - "5. ERROR in X.java (at line 11)\n" + + "5. WARNING in X.java (at line 10)\n" + + " ? 1 \n" + + " ^\n" + + "Dead code\n" + + "----------\n" + + "6. ERROR in X.java (at line 11)\n" + " : (blank2 = 2); \n" + " ^^^^^^\n" + "The final local variable blank2 may already have been assigned\n" + #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.35 diff -u -r1.35 FlowAnalysisTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java 24 Nov 2008 13:14:05 -0000 1.35 +++ src/org/eclipse/jdt/core/tests/compiler/regression/FlowAnalysisTest.java 25 Nov 2008 12:26:28 -0000 @@ -1867,6 +1867,46 @@ "Unreachable code\n" + "----------\n"); } +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=48399 - variation +public void test059() { + runNegativeTest( + new String[] { /* test files */ + "X.java", + "public class X {\n" + + " void foo(boolean b) {\n" + + " int i = false && b ? 0 : 1;\n" + + " if (false) {\n" + + " int j = false && b ? 0 : 1;\n" + + " }\n" + + " return;\n" + + " return;\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. WARNING in X.java (at line 3)\n" + + " int i = false && b ? 0 : 1;\n" + + " ^\n" + + "Dead code\n" + + "----------\n" + + "2. WARNING in X.java (at line 3)\n" + + " int i = false && b ? 0 : 1;\n" + + " ^\n" + + "Dead code\n" + + "----------\n" + + "3. WARNING in X.java (at line 4)\n" + + " if (false) {\n" + + " int j = false && b ? 0 : 1;\n" + + " }\n" + + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + + "Dead code\n" + + "----------\n" + + "4. ERROR in X.java (at line 8)\n" + + " return;\n" + + " ^^^^^^^\n" + + "Unreachable code\n" + + "----------\n"); +} public static Class testClass() { return FlowAnalysisTest.class; } Index: src/org/eclipse/jdt/core/tests/compiler/regression/StaticImportTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/StaticImportTest.java,v retrieving revision 1.72 diff -u -r1.72 StaticImportTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/StaticImportTest.java 25 Nov 2008 10:22:49 -0000 1.72 +++ src/org/eclipse/jdt/core/tests/compiler/regression/StaticImportTest.java 25 Nov 2008 12:26:28 -0000 @@ -2490,7 +2490,7 @@ "----------\n"); } //https://bugs.eclipse.org/bugs/show_bug.cgi?id=256375 - public void test073() { + public void testONLY_073() { this.runNegativeTest( new String[] { "test/Outer.java",