### Eclipse Workspace Patch 1.0 #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.102 diff -u -r1.102 InitializationTest.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java 13 Nov 2006 14:32:01 -0000 1.102 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/InitializationTest.java 12 Jan 2007 18:11:51 -0000 @@ -791,17 +791,27 @@ " ^^^^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. ERROR in CheckBlankFinals.java (at line 11)\n" + + "2. WARNING in CheckBlankFinals.java (at line 11)\n" + + " class LocA { \n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "3. ERROR in CheckBlankFinals.java (at line 11)\n" + " class LocA { \n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "3. WARNING in CheckBlankFinals.java (at line 12)\n" + + "4. WARNING in CheckBlankFinals.java (at line 12)\n" + " final int a; // never initialized \n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "4. WARNING in CheckBlankFinals.java (at line 14)\n" + + "5. WARNING in CheckBlankFinals.java (at line 13)\n" + + " class LocB { \n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "6. WARNING in CheckBlankFinals.java (at line 14)\n" + " final int b; \n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -836,17 +846,27 @@ "}\n" }, "----------\n" + - "1. ERROR in CheckBlankFinals1.java (at line 8)\n" + + "1. WARNING in CheckBlankFinals1.java (at line 8)\n" + + " class LocA {\n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "2. ERROR in CheckBlankFinals1.java (at line 8)\n" + " class LocA {\n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. WARNING in CheckBlankFinals1.java (at line 9)\n" + + "3. WARNING in CheckBlankFinals1.java (at line 9)\n" + " final int a; // never initialized\n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "3. WARNING in CheckBlankFinals1.java (at line 11)\n" + + "4. WARNING in CheckBlankFinals1.java (at line 10)\n" + + " class LocB {\n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "5. WARNING in CheckBlankFinals1.java (at line 11)\n" + " final int b; \n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -874,22 +894,32 @@ "} \n" }, "----------\n" + - "1. ERROR in CheckBlankFinals2.java (at line 5)\n" + + "1. WARNING in CheckBlankFinals2.java (at line 5)\n" + + " class LocA {\n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "2. ERROR in CheckBlankFinals2.java (at line 5)\n" + " class LocA {\n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. WARNING in CheckBlankFinals2.java (at line 6)\n" + + "3. WARNING in CheckBlankFinals2.java (at line 6)\n" + " final int a; // never initialized\n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "3. ERROR in CheckBlankFinals2.java (at line 7)\n" + + "4. WARNING in CheckBlankFinals2.java (at line 7)\n" + + " class LocB {\n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "5. ERROR in CheckBlankFinals2.java (at line 7)\n" + " class LocB {\n" + " ^^^^\n" + "The blank final field b may not have been initialized\n" + "----------\n" + - "4. WARNING in CheckBlankFinals2.java (at line 8)\n" + + "6. WARNING in CheckBlankFinals2.java (at line 8)\n" + " final int b; // never initialized\n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -920,8 +950,13 @@ " class MemberA {\n" + " ^^^^^^^\n" + "The blank final field a may not have been initialized\n" + - "----------\n" + - "2. WARNING in CheckBlankFinals3.java (at line 6)\n" + + "----------\n" + + "2. WARNING in CheckBlankFinals3.java (at line 5)\n" + + " class MemberB {\n" + + " ^^^^^^^\n" + + "The type MemberB is never used locally\n" + + "----------\n" + + "3. WARNING in CheckBlankFinals3.java (at line 6)\n" + " final int b; \n" + " ^\n" + "The field MemberB.b is never read locally\n" + @@ -1101,18 +1136,23 @@ " void g() {\n" + " ^^^\n" + "The method g() from the type Local is never used locally\n" + - "----------\n" + - "2. WARNING in Outer12.java (at line 8)\n" + + "----------\n" + + "2. WARNING in Outer12.java (at line 7)\n" + + " class Local2 {\n" + + " ^^^^^^\n" + + "The type Local2 is never used locally\n" + + "----------\n" + + "3. WARNING in Outer12.java (at line 8)\n" + " int n = count + count; // another compiler rejects\n" + " ^\n" + "The field Local2.n is never read locally\n" + "----------\n" + - "3. ERROR in Outer12.java (at line 8)\n" + + "4. ERROR in Outer12.java (at line 8)\n" + " int n = count + count; // another compiler rejects\n" + " ^^^^^\n" + "The local variable count may not have been initialized\n" + "----------\n" + - "4. ERROR in Outer12.java (at line 8)\n" + + "5. ERROR in Outer12.java (at line 8)\n" + " int n = count + count; // another compiler rejects\n" + " ^^^^^\n" + "The local variable count may not have been initialized\n" + Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromJikesPRs.java =================================================================== RCS file: /home/cvs/numbat/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromJikesPRs.java,v retrieving revision 1.23 diff -u -r1.23 FromJikesPRs.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromJikesPRs.java 29 Mar 2006 05:07:13 -0000 1.23 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/FromJikesPRs.java 12 Jan 2007 18:11:07 -0000 @@ -271,7 +271,12 @@ "}\n" }, "----------\n" + - "1. ERROR in Outer.java (at line 5)\n" + + "1. WARNING in Outer.java (at line 5)\n" + + " class Local extends Inner {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "2. ERROR in Outer.java (at line 5)\n" + " class Local extends Inner {\n" + " ^^^^^\n" + "No enclosing instance of type Outer is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of Outer (e.g. x.super() where x is an instance of Outer).\n" + Index: Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java =================================================================== RCS file: /home/cvs/numbat/org.eclipse.jdt.core.tests/Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java,v retrieving revision 1.299 diff -u -r1.299 NegativeTest.java --- Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java 10 Jan 2007 17:46:29 -0000 1.299 +++ Eclipse Java Tests Compiler/org/eclipse/jdt/tests/compiler/regression/NegativeTest.java 12 Jan 2007 18:13:35 -0000 @@ -3109,22 +3109,32 @@ " ^^^^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. ERROR in p\\CheckBlankFinals.java (at line 13)\n" + + "2. WARNING in p\\CheckBlankFinals.java (at line 13)\n" + + " class LocA {\n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "3. ERROR in p\\CheckBlankFinals.java (at line 13)\n" + " class LocA {\n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "3. WARNING in p\\CheckBlankFinals.java (at line 14)\n" + + "4. WARNING in p\\CheckBlankFinals.java (at line 14)\n" + " final int a; // never initialized\n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "4. ERROR in p\\CheckBlankFinals.java (at line 15)\n" + + "5. WARNING in p\\CheckBlankFinals.java (at line 15)\n" + + " class LocB {\n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "6. ERROR in p\\CheckBlankFinals.java (at line 15)\n" + " class LocB {\n" + " ^^^^\n" + "The blank final field b may not have been initialized\n" + "----------\n" + - "5. WARNING in p\\CheckBlankFinals.java (at line 16)\n" + + "7. WARNING in p\\CheckBlankFinals.java (at line 16)\n" + " final int b; \n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -3840,15 +3850,35 @@ " ^^^^^^^^^^^\n" + "SuperLokcal cannot be resolved to a type\n" + "----------\n" + - "3. WARNING in p\\TheSub.java (at line 16)\n" + + "3. WARNING in p\\TheSub.java (at line 12)\n" + + " class SubLocal extends MidLocal {}\n" + + " ^^^^^^^^\n" + + "The type SubLocal is never used locally\n" + + "----------\n" + + "4. WARNING in p\\TheSub.java (at line 16)\n" + " int y = x; }\n" + " ^\n" + "The field SuperLocal.y is never read locally\n" + "----------\n" + - "4. WARNING in p\\TheSub.java (at line 22)\n" + + "5. WARNING in p\\TheSub.java (at line 18)\n" + + " class SubLocal extends MidLocal {}\n" + + " ^^^^^^^^\n" + + "The type SubLocal is never used locally\n" + + "----------\n" + + "6. WARNING in p\\TheSub.java (at line 22)\n" + " Object o = TheSub.this; }\n" + " ^\n" + "The field SuperLocal.o is never read locally\n" + + "----------\n" + + "7. WARNING in p\\TheSub.java (at line 24)\n" + + " class SubLocal extends MidLocal {}\n" + + " ^^^^^^^^\n" + + "The type SubLocal is never used locally\n" + + "----------\n" + + "8. WARNING in p\\TheSub.java (at line 29)\n" + + " class SubLocal extends MidLocal {}\n" + + " ^^^^^^^^\n" + + "The type SubLocal is never used locally\n" + "----------\n" ); } @@ -3880,17 +3910,27 @@ "}", }, "----------\n" + - "1. ERROR in p\\CheckBlankFinals1.java (at line 11)\n" + + "1. WARNING in p\\CheckBlankFinals1.java (at line 11)\n" + + " class LocA {\n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "2. ERROR in p\\CheckBlankFinals1.java (at line 11)\n" + " class LocA {\n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. WARNING in p\\CheckBlankFinals1.java (at line 12)\n" + + "3. WARNING in p\\CheckBlankFinals1.java (at line 12)\n" + " final int a; // never initialized\n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "3. WARNING in p\\CheckBlankFinals1.java (at line 14)\n" + + "4. WARNING in p\\CheckBlankFinals1.java (at line 13)\n" + + " class LocB {\n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "5. WARNING in p\\CheckBlankFinals1.java (at line 14)\n" + " final int b; \n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -3914,23 +3954,33 @@ " } \n" + "} ", }, - "----------\n" + - "1. ERROR in p\\CheckBlankFinals2.java (at line 6)\n" + + "----------\n" + + "1. WARNING in p\\CheckBlankFinals2.java (at line 6)\n" + + " class LocA {\n" + + " ^^^^\n" + + "The type LocA is never used locally\n" + + "----------\n" + + "2. ERROR in p\\CheckBlankFinals2.java (at line 6)\n" + " class LocA {\n" + " ^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. WARNING in p\\CheckBlankFinals2.java (at line 7)\n" + + "3. WARNING in p\\CheckBlankFinals2.java (at line 7)\n" + " final int a; // never initialized\n" + " ^\n" + "The field LocA.a is never read locally\n" + "----------\n" + - "3. ERROR in p\\CheckBlankFinals2.java (at line 8)\n" + + "4. WARNING in p\\CheckBlankFinals2.java (at line 8)\n" + + " class LocB {\n" + + " ^^^^\n" + + "The type LocA.LocB is never used locally\n" + + "----------\n" + + "5. ERROR in p\\CheckBlankFinals2.java (at line 8)\n" + " class LocB {\n" + " ^^^^\n" + "The blank final field b may not have been initialized\n" + "----------\n" + - "4. WARNING in p\\CheckBlankFinals2.java (at line 9)\n" + + "6. WARNING in p\\CheckBlankFinals2.java (at line 9)\n" + " final int b; // never initialized\n" + " ^\n" + "The field LocA.LocB.b is never read locally\n" + @@ -3960,7 +4010,12 @@ " ^^^^^^^\n" + "The blank final field a may not have been initialized\n" + "----------\n" + - "2. WARNING in p\\CheckBlankFinals3.java (at line 7)\n" + + "2. WARNING in p\\CheckBlankFinals3.java (at line 6)\n" + + " class MemberB {\n" + + " ^^^^^^^\n" + + "The type MemberB is never used locally\n" + + "----------\n" + + "3. WARNING in p\\CheckBlankFinals3.java (at line 7)\n" + " final int b; \n" + " ^\n" + "The field MemberB.b is never read locally\n" + @@ -4383,17 +4438,22 @@ " ^^^\n" + "The method g() from the type Local is never used locally\n" + "----------\n" + - "2. WARNING in p\\Outer12.java (at line 9)\n" + + "2. WARNING in p\\Outer12.java (at line 8)\n" + + " class Local2 {\n" + + " ^^^^^^\n" + + "The type Local2 is never used locally\n" + + "----------\n" + + "3. WARNING in p\\Outer12.java (at line 9)\n" + " int n = count + count; // another compiler rejects\n" + " ^\n" + "The field Local2.n is never read locally\n" + "----------\n" + - "3. ERROR in p\\Outer12.java (at line 9)\n" + + "4. ERROR in p\\Outer12.java (at line 9)\n" + " int n = count + count; // another compiler rejects\n" + " ^^^^^\n" + "The local variable count may not have been initialized\n" + "----------\n" + - "4. ERROR in p\\Outer12.java (at line 9)\n" + + "5. ERROR in p\\Outer12.java (at line 9)\n" + " int n = count + count; // another compiler rejects\n" + " ^^^^^\n" + "The local variable count may not have been initialized\n" + @@ -5793,17 +5853,22 @@ " ^\n" + "Cannot define static initializer in inner type B\n" + "----------\n" + - "2. WARNING in p\\A11.java (at line 11)\n" + + "2. WARNING in p\\A11.java (at line 10)\n" + + " class A {\n" + + " ^\n" + + "The type A is never used locally\n" + + "----------\n" + + "3. WARNING in p\\A11.java (at line 11)\n" + " void f()\n" + " ^^^\n" + "The method f() from the type A is never used locally\n" + "----------\n" + - "3. ERROR in p\\A11.java (at line 13)\n" + + "4. ERROR in p\\A11.java (at line 13)\n" + " b=3; // B has not been definitely assigned!\n" + " ^\n" + "The final local variable b cannot be assigned, since it is defined in an enclosing type\n" + "----------\n" + - "4. ERROR in p\\A11.java (at line 17)\n" + + "5. ERROR in p\\A11.java (at line 17)\n" + " System.out.println(b);\n" + " ^\n" + "The local variable b may not have been initialized\n" + @@ -6502,12 +6567,17 @@ "}", }, "----------\n" + - "1. WARNING in p\\ASB.java (at line 9)\n" + + "1. WARNING in p\\ASB.java (at line 8)\n" + + " class L {\n" + + " ^\n" + + "The type L is never used locally\n" + + "----------\n" + + "2. WARNING in p\\ASB.java (at line 9)\n" + " int l = ASB.this.x; // no enclosing instance of type X is available\n" + " ^\n" + "The field L.l is never read locally\n" + "----------\n" + - "2. ERROR in p\\ASB.java (at line 9)\n" + + "3. ERROR in p\\ASB.java (at line 9)\n" + " int l = ASB.this.x; // no enclosing instance of type X is available\n" + " ^^^^^^^^\n" + "No enclosing instance of the type ASB is accessible in scope\n" + @@ -8912,7 +8982,12 @@ " ^\n" + "X cannot be resolved to a type\n" + "----------\n" + - "9. WARNING in p\\h\\X1.java (at line 30)\n" + + "9. WARNING in p\\h\\X1.java (at line 29)\n" + + " class Local {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "10. WARNING in p\\h\\X1.java (at line 30)\n" + " void foo() {\n" + " ^^^^^\n" + "The method foo() from the type Local is never used locally\n" + @@ -9227,23 +9302,33 @@ " Object myself() {\n" + " ^^^^^^^^\n" + "The method myself() from the type new Object(){} is never used locally\n" + - "----------\n" + - "7. WARNING in p\\d\\JE_5_AWT.java (at line 44)\n" + + "----------\n" + + "7. WARNING in p\\d\\JE_5_AWT.java (at line 43)\n" + + " class Local {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "8. WARNING in p\\d\\JE_5_AWT.java (at line 44)\n" + " JE_5_AWT obj = JE_5_AWT.this;\n" + " ^^^\n" + "The field Local.obj is never read locally\n" + "----------\n" + - "8. WARNING in p\\d\\JE_5_AWT.java (at line 49)\n" + + "9. WARNING in p\\d\\JE_5_AWT.java (at line 49)\n" + " Object outer() {\n" + " ^^^^^^^\n" + "The method outer() from the type new Object(){} is never used locally\n" + "----------\n" + - "9. ERROR in p\\d\\JE_5_AWT.java (at line 50)\n" + + "10. ERROR in p\\d\\JE_5_AWT.java (at line 50)\n" + " return JE_5_AWT.this; //<---- KO\n" + " ^^^^^^^^^^^^^\n" + "No enclosing instance of the type JE_5_AWT is accessible in scope\n" + "----------\n" + - "10. WARNING in p\\d\\JE_5_AWT.java (at line 56)\n" + + "11. WARNING in p\\d\\JE_5_AWT.java (at line 55)\n" + + " class Local extends Thread {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "12. WARNING in p\\d\\JE_5_AWT.java (at line 56)\n" + " Local() {\n" + " ^^^^^^^\n" + "The constructor Local() is never used locally\n" + @@ -10217,32 +10302,37 @@ "} \n" }, "----------\n" + - "1. WARNING in p1\\X.java (at line 8)\n" + + "1. WARNING in p1\\X.java (at line 5)\n" + + " class Local extends C { \n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "2. WARNING in p1\\X.java (at line 8)\n" + " public final int CST2 = 12; \n" + " ^^^^\n" + "The field Local.CST2 is hiding a field from type C\n" + "----------\n" + - "2. WARNING in p1\\X.java (at line 8)\n" + + "3. WARNING in p1\\X.java (at line 8)\n" + " public final int CST2 = 12; \n" + " ^^^^\n" + "The field Local.CST2 is never read locally\n" + "----------\n" + - "3. WARNING in p1\\X.java (at line 9)\n" + + "4. WARNING in p1\\X.java (at line 9)\n" + " void foo(int i){ \n" + " ^^^^^^^^^^\n" + "The method foo(int) from the type Local is never used locally\n" + "----------\n" + - "4. ERROR in p1\\X.java (at line 11)\n" + + "5. ERROR in p1\\X.java (at line 11)\n" + " case this.CST : \n" + " ^^^^^^^^\n" + "case expressions must be constant expressions\n" + "----------\n" + - "5. ERROR in p1\\X.java (at line 15)\n" + + "6. ERROR in p1\\X.java (at line 15)\n" + " case super.CST2 : \n" + " ^^^^^^^^^^\n" + "case expressions must be constant expressions\n" + "----------\n" + - "6. ERROR in p1\\X.java (at line 17)\n" + + "7. ERROR in p1\\X.java (at line 17)\n" + " case X.this.CST3 : \n" + " ^^^^^^^^^^^\n" + "case expressions must be constant expressions\n" + @@ -13352,7 +13442,12 @@ " ^\n" + "Unnecessary semicolon\n" + "----------\n" + - "11. WARNING in p\\X.java (at line 13)\n" + + "11. WARNING in p\\X.java (at line 13)\n" + + " class Object { }; \n" + + " ^^^^^^\n" + + "The type Object is never used locally\n" + + "----------\n" + + "12. WARNING in p\\X.java (at line 13)\n" + " class Object { }; \n" + " ^\n" + "Unnecessary semicolon\n" + @@ -13410,17 +13505,22 @@ " ^\n" + "Unnecessary semicolon\n" + "----------\n" + - "6. WARNING in X.java (at line 10)\n" + + "6. WARNING in X.java (at line 9)\n" + + " class L {\n" + + " ^\n" + + "The type L is never used locally\n" + + "----------\n" + + "7. WARNING in X.java (at line 10)\n" + " };//6\n" + " ^\n" + "Unnecessary semicolon\n" + "----------\n" + - "7. WARNING in X.java (at line 11)\n" + + "8. WARNING in X.java (at line 11)\n" + " };//7\n" + " ^\n" + "Unnecessary semicolon\n" + "----------\n" + - "8. WARNING in X.java (at line 12)\n" + + "9. WARNING in X.java (at line 12)\n" + " };//8\n" + " ^\n" + "Unnecessary semicolon\n" + @@ -15873,33 +15973,43 @@ " void foo1() {}\n" + " ^^^^^^\n" + "The method foo1() from the type new Object(){} is never used locally\n" + - "----------\n" + - "3. WARNING in X.java (at line 10)\n" + + "----------\n" + + "3. WARNING in X.java (at line 8)\n" + + " class Local {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "4. WARNING in X.java (at line 9)\n" + + " class LMember implements Runnable {\n" + + " ^^^^^^^\n" + + "The type Local.LMember is never used locally\n" + + "----------\n" + + "5. WARNING in X.java (at line 10)\n" + " LMember(int i) {}\n" + " ^^^^^^^^^^^^^^\n" + "The constructor Local.LMember(int) is never used locally\n" + "----------\n" + - "4. WARNING in X.java (at line 11)\n" + + "6. WARNING in X.java (at line 11)\n" + " int unused2;\n" + " ^^^^^^^\n" + "The field Local.LMember.unused2 is never read locally\n" + "----------\n" + - "5. WARNING in X.java (at line 12)\n" + + "7. WARNING in X.java (at line 12)\n" + " void foo2() {}\n" + " ^^^^^^\n" + "The method foo2() from the type Local.LMember is never used locally\n" + "----------\n" + - "6. WARNING in X.java (at line 15)\n" + + "8. WARNING in X.java (at line 15)\n" + " Local(int i) {}\n" + " ^^^^^^^^^^^^\n" + "The constructor Local(int) is never used locally\n" + "----------\n" + - "7. WARNING in X.java (at line 16)\n" + + "9. WARNING in X.java (at line 16)\n" + " int unused3;\n" + " ^^^^^^^\n" + "The field Local.unused3 is never read locally\n" + "----------\n" + - "8. WARNING in X.java (at line 17)\n" + + "10. WARNING in X.java (at line 17)\n" + " void foo3() {}\n" + " ^^^^^^\n" + "The method foo3() from the type Local is never used locally\n" + @@ -15926,5 +16036,203 @@ " ^^^^^^^^^^^^\n" + "The label label2 is missing\n" + "----------\n"); +} + +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=170181 +public void test442() { + this.runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + " private class M { \n" + + " private class Member1 {} \n" + + " private class Member2 extends M { \n" + + " }\n" + + " }\n" + + " public static void main(String[] args) {\n" + + " class Local1 {} \n" + + " class Local2 { \n" + + " class LMember1 {} \n" + + " class LMember2 extends Local2 { \n" + + " }\n" + + " LMember1 m1;\n" + + " }\n" + + " int i = 0;\n" + + " }\n" + + "} \n" + }, + "----------\n" + + "1. WARNING in X.java (at line 2)\n" + + " private class M { \n" + + " ^\n" + + "The type X.M is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 3)\n" + + " private class Member1 {} \n" + + " ^^^^^^^\n" + + "The type X.M.Member1 is never used locally\n" + + "----------\n" + + "3. WARNING in X.java (at line 4)\n" + + " private class Member2 extends M { \n" + + " ^^^^^^^\n" + + "The type X.M.Member2 is never used locally\n" + + "----------\n" + + "4. WARNING in X.java (at line 4)\n" + + " private class Member2 extends M { \n" + + " ^^^^^^^\n" + + "Access to enclosing constructor X.M() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + + "----------\n" + + "5. WARNING in X.java (at line 8)\n" + + " class Local1 {} \n" + + " ^^^^^^\n" + + "The type Local1 is never used locally\n" + + "----------\n" + + "6. WARNING in X.java (at line 9)\n" + + " class Local2 { \n" + + " ^^^^^^\n" + + "The type Local2 is never used locally\n" + + "----------\n" + + "7. WARNING in X.java (at line 11)\n" + + " class LMember2 extends Local2 { \n" + + " ^^^^^^^^\n" + + "The type Local2.LMember2 is never used locally\n" + + "----------\n" + + "8. WARNING in X.java (at line 13)\n" + + " LMember1 m1;\n" + + " ^^\n" + + "The field Local2.m1 is never read locally\n" + + "----------\n" + + ); + +} + +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=170181 +public void test443() { + this.runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + " private class M { \n" + + " private class Member1 {} \n" + + " private class Member2 extends M { \n" + + " }\n" + + " M.Member2 m2;\n" + + " }\n" + + " public static void main(String[] args) {\n" + + " class Local1 {} \n" + + " class Local2 { \n" + + " class LMember1 {} \n" + + " class LMember2 extends Local2 { \n" + + " }\n" + + " // LMember1 m1;\n" + + " }\n" + + " int i = 0;\n" + + " }\n" + + "} \n" + }, + "----------\n" + + "1. WARNING in X.java (at line 2)\n" + + " private class M { \n" + + " ^\n" + + "The type X.M is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 3)\n" + + " private class Member1 {} \n" + + " ^^^^^^^\n" + + "The type X.M.Member1 is never used locally\n" + + "----------\n" + + "3. WARNING in X.java (at line 4)\n" + + " private class Member2 extends M { \n" + + " ^^^^^^^\n" + + "Access to enclosing constructor X.M() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + + "----------\n" + + "4. WARNING in X.java (at line 9)\n" + + " class Local1 {} \n" + + " ^^^^^^\n" + + "The type Local1 is never used locally\n" + + "----------\n" + + "5. WARNING in X.java (at line 10)\n" + + " class Local2 { \n" + + " ^^^^^^\n" + + "The type Local2 is never used locally\n" + + "----------\n" + + "6. WARNING in X.java (at line 11)\n" + + " class LMember1 {} \n" + + " ^^^^^^^^\n" + + "The type Local2.LMember1 is never used locally\n" + + "----------\n" + + "7. WARNING in X.java (at line 12)\n" + + " class LMember2 extends Local2 { \n" + + " ^^^^^^^^\n" + + "The type Local2.LMember2 is never used locally\n" + + "----------\n" + ); + +} + +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=170181 +public void test444() { + this.runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + " private class M { \n" + + " private class Member1 { \n" + + " static{} \n" + + " } \n" + + " private class Member2 extends M { \n" + + " static{} \n" + + " }\n" + + " }\n" + + " public static void main(String[] args) {\n" + + " class Local1 { \n" + + " static{} \n" + + " } \n" + + " class Local2 { \n" + + " class LMember1 { \n" + + " static{} \n" + + " } \n" + + " class LMember2 extends Local2 { \n" + + " static{} \n" + + " }\n" + + " }\n" + + " int i = 0;\n" + + " }\n" + + "} \n" + }, + "----------\n" + + "1. WARNING in X.java (at line 2)\n" + + " private class M { \n" + + " ^\n" + + "The type X.M is never used locally\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " static{} \n" + + " ^\n" + + "Cannot define static initializer in inner type X.M.Member1\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + + " static{} \n" + + " ^\n" + + "Cannot define static initializer in inner type X.M.Member2\n" + + "----------\n" + + "4. ERROR in X.java (at line 12)\n" + + " static{} \n" + + " ^\n" + + "Cannot define static initializer in inner type Local1\n" + + "----------\n" + + "5. ERROR in X.java (at line 16)\n" + + " static{} \n" + + " ^\n" + + "Cannot define static initializer in inner type Local2.LMember1\n" + + "----------\n" + + "6. ERROR in X.java (at line 19)\n" + + " static{} \n" + + " ^\n" + + "Cannot define static initializer in inner type Local2.LMember2\n" + + "----------\n" + ); + } } #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java,v retrieving revision 1.78 diff -u -r1.78 ASTNode.java --- compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java 9 Jan 2007 16:16:52 -0000 1.78 +++ compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java 12 Jan 2007 18:25:12 -0000 @@ -398,7 +398,7 @@ ReferenceBinding refType = (ReferenceBinding) type; - if ((refType.isPrivate() /*|| refType.isLocalType()*/) && !scope.isDefinedInType(refType)) { + if ((refType.isPrivate() || refType.isLocalType()) && !scope.isDefinedInType(refType)) { // ignore cases where type is used from within inside itself ((ReferenceBinding)refType.erasure()).modifiers |= ExtraCompilerModifiers.AccLocallyUsed; } Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java,v retrieving revision 1.131 diff -u -r1.131 TypeDeclaration.java --- compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 24 Nov 2006 01:32:07 -0000 1.131 +++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 12 Jan 2007 18:25:14 -0000 @@ -589,7 +589,7 @@ * Common flow analysis for all types */ private void internalAnalyseCode(FlowContext flowContext, FlowInfo flowInfo) { - if ((this.binding.isPrivate()/* || (this.binding.tagBits & (TagBits.IsAnonymousType|TagBits.IsLocalType)) == TagBits.IsLocalType*/) && !this.binding.isUsed()) { + if ((this.binding.isPrivate() || (this.binding.tagBits & (TagBits.IsAnonymousType|TagBits.IsLocalType)) == TagBits.IsLocalType) && !this.binding.isUsed()) { if (!this.scope.referenceCompilationUnit().compilationResult.hasSyntaxError) { this.scope.problemReporter().unusedPrivateType(this); } #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/InnerEmulationTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/InnerEmulationTest.java,v retrieving revision 1.18 diff -u -r1.18 InnerEmulationTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/InnerEmulationTest.java 11 Jan 2007 08:52:58 -0000 1.18 +++ src/org/eclipse/jdt/core/tests/compiler/regression/InnerEmulationTest.java 12 Jan 2007 18:26:48 -0000 @@ -2999,18 +2999,23 @@ "} \n" }, "----------\n" + - "1. WARNING in X.java (at line 8)\n" + + "1. WARNING in X.java (at line 7)\n" + + " class B extends X { \n" + + " ^\n" + + "The type B is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 8)\n" + " B() { \n" + " ^^^\n" + "The constructor B() is never used locally\n" + "----------\n" + - "2. ERROR in X.java (at line 9)\n" + + "3. ERROR in X.java (at line 9)\n" + " super(new A(){ \n" + " }); \n" + " ^^^^^^^^^^^^^^^\n" + "No enclosing instance of type X is available due to some intermediate constructor invocation\n" + "----------\n" + - "3. WARNING in X.java (at line 9)\n" + + "4. WARNING in X.java (at line 9)\n" + " super(new A(){ \n" + " ^^^\n" + "Access to enclosing constructor A() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + @@ -3037,12 +3042,17 @@ "} \n" }, "----------\n" + - "1. WARNING in X.java (at line 8)\n" + + "1. WARNING in X.java (at line 7)\n" + + " class B extends X { \n" + + " ^\n" + + "The type B is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 8)\n" + " B() { \n" + " ^^^\n" + "The constructor B() is never used locally\n" + "----------\n" + - "2. ERROR in X.java (at line 9)\n" + + "3. ERROR in X.java (at line 9)\n" + " super(new A(){ \n" + " }); \n" + " ^^^^^^^^^^^^^^^\n" + @@ -3129,29 +3139,34 @@ "} \n" }, "----------\n" + - "1. WARNING in X.java (at line 8)\n" + + "1. WARNING in X.java (at line 7)\n" + + " class B extends X { \n" + + " ^\n" + + "The type B is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 8)\n" + " B() { \n" + " ^^^\n" + "The constructor B() is never used locally\n" + "----------\n" + - "2. ERROR in X.java (at line 9)\n" + + "3. ERROR in X.java (at line 9)\n" + " super(new A(){ \n" + " void foo() { System.out.println(X.this); } \n" + " }); \n" + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + "No enclosing instance of type X is available due to some intermediate constructor invocation\n" + "----------\n" + - "3. WARNING in X.java (at line 9)\n" + + "4. WARNING in X.java (at line 9)\n" + " super(new A(){ \n" + " ^^^\n" + "Access to enclosing constructor A() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + "----------\n" + - "4. WARNING in X.java (at line 10)\n" + + "5. WARNING in X.java (at line 10)\n" + " void foo() { System.out.println(X.this); } \n" + " ^^^^^\n" + "The method foo() from the type new A(){} is never used locally\n" + "----------\n" + - "5. ERROR in X.java (at line 10)\n" + + "6. ERROR in X.java (at line 10)\n" + " void foo() { System.out.println(X.this); } \n" + " ^^^^^^\n" + "No enclosing instance of the type X is accessible in scope\n" + @@ -3179,24 +3194,29 @@ "} \n" }, "----------\n" + - "1. WARNING in X.java (at line 8)\n" + + "1. WARNING in X.java (at line 7)\n" + + " class B extends X { \n" + + " ^\n" + + "The type B is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 8)\n" + " B() { \n" + " ^^^\n" + "The constructor B() is never used locally\n" + "----------\n" + - "2. ERROR in X.java (at line 9)\n" + + "3. ERROR in X.java (at line 9)\n" + " super(new A(){ \n" + " void foo() { System.out.println(X.this); } \n" + " }); \n" + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + "No enclosing instance of type X is available due to some intermediate constructor invocation\n" + "----------\n" + - "3. WARNING in X.java (at line 10)\n" + + "4. WARNING in X.java (at line 10)\n" + " void foo() { System.out.println(X.this); } \n" + " ^^^^^\n" + "The method foo() from the type new A(){} is never used locally\n" + "----------\n" + - "4. ERROR in X.java (at line 10)\n" + + "5. ERROR in X.java (at line 10)\n" + " void foo() { System.out.println(X.this); } \n" + " ^^^^^^\n" + "No enclosing instance of the type X is accessible in scope\n" + @@ -3959,7 +3979,12 @@ "}", }, "----------\n" + - "1. ERROR in X.java (at line 5)\n" + + "1. WARNING in X.java (at line 5)\n" + + " class Local2 extends Local1 {\n" + + " ^^^^^^\n" + + "The type Local2 is never used locally\n" + + "----------\n" + + "2. ERROR in X.java (at line 5)\n" + " class Local2 extends Local1 {\n" + " ^^^^^^\n" + "No enclosing instance of type X is available due to some intermediate constructor invocation\n" + @@ -4017,7 +4042,12 @@ " ^^^^^\n" + "The method foo() from the type new X(){} is never used locally\n" + "----------\n" + - "3. ERROR in X.java (at line 13)\n" + + "3. WARNING in X.java (at line 13)\n" + + " class D extends C {\n" + + " ^\n" + + "The type D is never used locally\n" + + "----------\n" + + "4. ERROR in X.java (at line 13)\n" + " class D extends C {\n" + " ^\n" + "No enclosing instance of type X is available due to some intermediate constructor invocation\n" + @@ -5335,15 +5365,30 @@ "}", // ================= }, "----------\n" + - "1. WARNING in X.java (at line 5)\n" + + "1. WARNING in X.java (at line 3)\n" + + " class Local {}\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "2. WARNING in X.java (at line 4)\n" + + " class Foo {\n" + + " ^^^\n" + + "The type Foo is never used locally\n" + + "----------\n" + + "3. WARNING in X.java (at line 5)\n" + " void foo() {\n" + " ^^^^^\n" + "The method foo() from the type Foo is never used locally\n" + "----------\n" + - "2. WARNING in X.java (at line 6)\n" + + "4. WARNING in X.java (at line 6)\n" + " class Local {}\n" + " ^^^^^\n" + "The type Local is hiding the type Local\n" + + "----------\n" + + "5. WARNING in X.java (at line 6)\n" + + " class Local {}\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + "----------\n"); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=168331 Index: src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java,v retrieving revision 1.583 diff -u -r1.583 GenericTypeTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 12 Jan 2007 14:19:42 -0000 1.583 +++ src/org/eclipse/jdt/core/tests/compiler/regression/GenericTypeTest.java 12 Jan 2007 18:26:39 -0000 @@ -35867,48 +35867,68 @@ //https://bugs.eclipse.org/bugs/show_bug.cgi?id=165679 public void test1088() { this.runNegativeTest( - new String[] { - "X.java", - "public class X {\n" + - " static public class M {}\n" + - " Zork z;\n" + - " void foo() {\n" + - " class M {} // hides member\n" + - " }\n" + - "}\n" + - "class Y {\n" + - " class Local {}\n" + - " void foo() {\n" + - " class T {}; // hiding warning\n" + - " class Local {};\n" + - " }\n" + - " static void bar() {\n" + - " class T {}; // no hiding warning\n" + - " class Local {}; // no hiding warning\n" + - " } \n" + - "}\n", // ================= - }, - "----------\n" + - "1. ERROR in X.java (at line 3)\n" + - " Zork z;\n" + - " ^^^^\n" + - "Zork cannot be resolved to a type\n" + - "----------\n" + - "2. WARNING in X.java (at line 5)\n" + - " class M {} // hides member\n" + - " ^\n" + - "The type M is hiding the type X.M\n" + - "----------\n" + - "3. WARNING in X.java (at line 11)\n" + - " class T {}; // hiding warning\n" + - " ^\n" + - "The nested type T is hiding the type parameter T of type Y\n" + - "----------\n" + - "4. WARNING in X.java (at line 12)\n" + - " class Local {};\n" + - " ^^^^^\n" + - "The type Local is hiding the type Y.Local\n" + - "----------\n"); + new String[] { + "X.java", + "public class X {\n" + + " static public class M {}\n" + + " Zork z;\n" + + " void foo() {\n" + + " class M {} // hides member\n" + + " }\n" + + "}\n" + + "class Y {\n" + + " class Local {}\n" + + " void foo() {\n" + + " class T {}; // hiding warning\n" + + " class Local {};\n" + + " }\n" + + " static void bar() {\n" + + " class T {}; // no hiding warning\n" + + " class Local {}; // no hiding warning\n" + + " } \n" + + "}\n", // ================= + }, + "----------\n" + + "1. ERROR in X.java (at line 3)\n" + + " Zork z;\n" + + " ^^^^\n" + + "Zork cannot be resolved to a type\n" + + "----------\n" + + "2. WARNING in X.java (at line 5)\n" + + " class M {} // hides member\n" + + " ^\n" + + "The type M is hiding the type X.M\n" + + "----------\n" + + "3. WARNING in X.java (at line 11)\n" + + " class T {}; // hiding warning\n" + + " ^\n" + + "The nested type T is hiding the type parameter T of type Y\n" + + "----------\n" + + "4. WARNING in X.java (at line 11)\n" + + " class T {}; // hiding warning\n" + + " ^\n" + + "The type T is never used locally\n" + + "----------\n" + + "5. WARNING in X.java (at line 12)\n" + + " class Local {};\n" + + " ^^^^^\n" + + "The type Local is hiding the type Y.Local\n" + + "----------\n" + + "6. WARNING in X.java (at line 12)\n" + + " class Local {};\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "7. WARNING in X.java (at line 15)\n" + + " class T {}; // no hiding warning\n" + + " ^\n" + + "The type T is never used locally\n" + + "----------\n" + + "8. WARNING in X.java (at line 16)\n" + + " class Local {}; // no hiding warning\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n"); } //https://bugs.eclipse.org/bugs/show_bug.cgi?id=165679 - variation public void test1089() { Index: src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java,v retrieving revision 1.89 diff -u -r1.89 Compliance_1_4.java --- src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java 24 Nov 2006 17:17:53 -0000 1.89 +++ src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_4.java 12 Jan 2007 18:25:22 -0000 @@ -1906,17 +1906,22 @@ "}", }, "----------\n" + - "1. WARNING in p\\FieldQualification.java (at line 6)\n" + + "1. WARNING in p\\FieldQualification.java (at line 5)\n" + + " class Local {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "2. WARNING in p\\FieldQualification.java (at line 6)\n" + " String field = \"Enclosing field for anonymous type\";\n" + " ^^^^^\n" + "The field Local.field is hiding a field from type FieldQualification\n" + "----------\n" + - "2. WARNING in p\\FieldQualification.java (at line 6)\n" + + "3. WARNING in p\\FieldQualification.java (at line 6)\n" + " String field = \"Enclosing field for anonymous type\";\n" + " ^^^^^\n" + "The field Local.field is never read locally\n" + "----------\n" + - "3. WARNING in p\\FieldQualification.java (at line 7)\n" + + "4. WARNING in p\\FieldQualification.java (at line 7)\n" + " void foo() {\n" + " ^^^^^\n" + "The method foo() from the type Local is never used locally\n" + Index: src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_5.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_5.java,v retrieving revision 1.68 diff -u -r1.68 Compliance_1_5.java --- src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_5.java 23 Nov 2006 17:26:58 -0000 1.68 +++ src/org/eclipse/jdt/core/tests/compiler/regression/Compliance_1_5.java 12 Jan 2007 18:25:28 -0000 @@ -1928,17 +1928,22 @@ "}", }, "----------\n" + - "1. WARNING in p\\FieldQualification.java (at line 6)\n" + + "1. WARNING in p\\FieldQualification.java (at line 5)\n" + + " class Local {\n" + + " ^^^^^\n" + + "The type Local is never used locally\n" + + "----------\n" + + "2. WARNING in p\\FieldQualification.java (at line 6)\n" + " String field = \"Enclosing field for anonymous type\";\n" + " ^^^^^\n" + "The field Local.field is hiding a field from type FieldQualification\n" + "----------\n" + - "2. WARNING in p\\FieldQualification.java (at line 6)\n" + + "3. WARNING in p\\FieldQualification.java (at line 6)\n" + " String field = \"Enclosing field for anonymous type\";\n" + " ^^^^^\n" + "The field Local.field is never read locally\n" + "----------\n" + - "3. WARNING in p\\FieldQualification.java (at line 7)\n" + + "4. WARNING in p\\FieldQualification.java (at line 7)\n" + " void foo() {\n" + " ^^^^^\n" + "The method foo() from the type Local is never used locally\n" +