### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java,v retrieving revision 1.43 diff -u -r1.43 JavadocTest_1_5.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 28 Apr 2009 17:17:33 -0000 1.43 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 18 Aug 2009 10:25:30 -0000 @@ -1664,12 +1664,12 @@ "pack/package-info.java", "/**\n" + " * Valid javadoc.\n" + - " * @see Test\n" + + " * @see pack.Test\n" + " * @see Unknown\n" + - " * @see Test#foo()\n" + - " * @see Test#unknown()\n" + - " * @see Test#field\n" + - " * @see Test#unknown\n" + + " * @see pack.Test#foo()\n" + + " * @see pack.Test#unknown()\n" + + " * @see pack.Test#field\n" + + " * @see pack.Test#unknown\n" + " * @param unexpected\n" + " * @throws unexpected\n" + " * @return unexpected \n" + @@ -1687,36 +1687,36 @@ " public void foo() {}\n" + "}\n" }, - "----------\n" + - "1. ERROR in pack\\package-info.java (at line 4)\n" + - " * @see Unknown\n" + - " ^^^^^^^\n" + - "Javadoc: Unknown cannot be resolved to a type\n" + - "----------\n" + - "2. ERROR in pack\\package-info.java (at line 6)\n" + - " * @see Test#unknown()\n" + - " ^^^^^^^\n" + - "Javadoc: The method unknown() is undefined for the type Test\n" + - "----------\n" + - "3. ERROR in pack\\package-info.java (at line 8)\n" + - " * @see Test#unknown\n" + - " ^^^^^^^\n" + - "Javadoc: unknown cannot be resolved or is not a field\n" + - "----------\n" + - "4. ERROR in pack\\package-info.java (at line 9)\n" + - " * @param unexpected\n" + - " ^^^^^\n" + - "Javadoc: Unexpected tag\n" + - "----------\n" + - "5. ERROR in pack\\package-info.java (at line 10)\n" + - " * @throws unexpected\n" + - " ^^^^^^\n" + - "Javadoc: Unexpected tag\n" + - "----------\n" + - "6. ERROR in pack\\package-info.java (at line 11)\n" + - " * @return unexpected \n" + - " ^^^^^^\n" + - "Javadoc: Unexpected tag\n" + + "----------\n" + + "1. ERROR in pack\\package-info.java (at line 4)\n" + + " * @see Unknown\n" + + " ^^^^^^^\n" + + "Javadoc: Unknown cannot be resolved to a type\n" + + "----------\n" + + "2. ERROR in pack\\package-info.java (at line 6)\n" + + " * @see pack.Test#unknown()\n" + + " ^^^^^^^\n" + + "Javadoc: The method unknown() is undefined for the type Test\n" + + "----------\n" + + "3. ERROR in pack\\package-info.java (at line 8)\n" + + " * @see pack.Test#unknown\n" + + " ^^^^^^^\n" + + "Javadoc: unknown cannot be resolved or is not a field\n" + + "----------\n" + + "4. ERROR in pack\\package-info.java (at line 9)\n" + + " * @param unexpected\n" + + " ^^^^^\n" + + "Javadoc: Unexpected tag\n" + + "----------\n" + + "5. ERROR in pack\\package-info.java (at line 10)\n" + + " * @throws unexpected\n" + + " ^^^^^^\n" + + "Javadoc: Unexpected tag\n" + + "----------\n" + + "6. ERROR in pack\\package-info.java (at line 11)\n" + + " * @return unexpected \n" + + " ^^^^^^\n" + + "Javadoc: Unexpected tag\n" + "----------\n", JavacTestOptions.Excuse.EclipseWarningConfiguredAsError ); Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java,v retrieving revision 1.64 diff -u -r1.64 JavadocBugsTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 24 Jun 2009 02:14:57 -0000 1.64 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocBugsTest.java 18 Aug 2009 10:25:28 -0000 @@ -1265,7 +1265,7 @@ * @see 50695 */ public void testBug50695() { - runNegativeTest( + runConformTest( new String[] { "X.java", "public class X {\n" + @@ -1275,19 +1275,7 @@ " */\n" + " void foo() {}\n" + "}\n" - }, - "----------\n" + - "1. ERROR in X.java (at line 3)\n" + - " * @see java\n" + - " ^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "2. ERROR in X.java (at line 4)\n" + - " * @see java.util\n" + - " ^^^^^^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" - ); + }); } public void testBug50695b() { runNegativeTest( @@ -7541,96 +7529,6 @@ } /** - * @bug 211054: [javadoc] @see package reference should raise a warning except for the package declaration - * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=211054" - */ -public void testBug211054a() { - runNegativeTest( - new String[] { - "pkg/X.java", - "package pkg;\n" + - "\n" + - "public class X {\n" + - " /**\n" + - " * @see java\n" + - " * @see java.lang\n" + - " * @see PKG\n" + - " * @see pkg\n" + - " */\n" + - " public void foo() { \n" + - " \n" + - " }\n" + - "}\n" - }, - // warning - Tag @see: reference not found: java - // warning - Tag @see: reference not found: java.lang - // warning - Tag @see: reference not found: PKG - "----------\n" + - "1. ERROR in pkg\\X.java (at line 5)\n" + - " * @see java\n" + - " ^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "2. ERROR in pkg\\X.java (at line 6)\n" + - " * @see java.lang\n" + - " ^^^^^^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "3. ERROR in pkg\\X.java (at line 7)\n" + - " * @see PKG\n" + - " ^^^\n" + - "Javadoc: PKG cannot be resolved to a type\n" + - "----------\n" - ); -} -public void testBug211054b() { - runNegativeTest( - new String[] { - "x/y/z/X.java", - "package x.y.z;\n" + - "\n" + - "public class X {\n" + - " /**\n" + - " * @see java\n" + - " * @see java.lang\n" + - " * @see x\n" + - " * @see x.y\n" + - " * @see x.y.z\n" + - " */\n" + - " public void foo() { \n" + - " \n" + - " }\n" + - "}\n" - }, - // warning - Tag @see: reference not found: java - // warning - Tag @see: reference not found: java.lang - // warning - Tag @see: reference not found: x - // warning - Tag @see: reference not found: x.y - "----------\n" + - "1. ERROR in x\\y\\z\\X.java (at line 5)\n" + - " * @see java\n" + - " ^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "2. ERROR in x\\y\\z\\X.java (at line 6)\n" + - " * @see java.lang\n" + - " ^^^^^^^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "3. ERROR in x\\y\\z\\X.java (at line 7)\n" + - " * @see x\n" + - " ^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" + - "4. ERROR in x\\y\\z\\X.java (at line 8)\n" + - " * @see x.y\n" + - " ^^^\n" + - "Javadoc: Invalid reference\n" + - "----------\n" - ); -} - -/** * @bug 222900: [Javadoc] Missing description is warned if valid description is on a new line * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=222900" */ @@ -8637,4 +8535,56 @@ "----------\n"); } +/** + * @bug 281609: [javadoc] "Javadoc: Invalid reference" warning for @link to Java package + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=281609" + */ +public void testBug281609a() { + runNegativeTest( + new String[] { + "pkg/X.java", + "package pkg;\n" + + "\n" + + "public class X {\n" + + " /**\n" + + " * @see java\n" + + " * @see java.lang\n" + + " * @see PKG\n" + + " * @see pkg\n" + + " */\n" + + " public void foo() { \n" + + " \n" + + " }\n" + + "}\n" + }, + // warning - Tag @see: reference not found: PKG + "----------\n" + + "1. ERROR in pkg\\X.java (at line 7)\n" + + " * @see PKG\n" + + " ^^^\n" + + "Javadoc: PKG cannot be resolved to a type\n" + + "----------\n" + ); +} +public void testBug281609b() { + runConformTest( + new String[] { + "x/y/z/X.java", + "package x.y.z;\n" + + "\n" + + "public class X {\n" + + " /**\n" + + " * @see java\n" + + " * @see java.lang\n" + + " * @see x\n" + + " * @see x.y\n" + + " * @see x.y.z\n" + + " */\n" + + " public void foo() { \n" + + " \n" + + " }\n" + + "}\n" + }); +} + } \ No newline at end of file #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/JavadocQualifiedTypeReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocQualifiedTypeReference.java,v retrieving revision 1.24 diff -u -r1.24 JavadocQualifiedTypeReference.java --- compiler/org/eclipse/jdt/internal/compiler/ast/JavadocQualifiedTypeReference.java 12 Sep 2008 16:38:59 -0000 1.24 +++ compiler/org/eclipse/jdt/internal/compiler/ast/JavadocQualifiedTypeReference.java 18 Aug 2009 10:25:34 -0000 @@ -50,11 +50,7 @@ Binding binding = scope.getTypeOrPackage(this.tokens); if (binding instanceof PackageBinding) { this.packageBinding = (PackageBinding) binding; - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=211054 - // allow references to current package only. All other package references should be reported as invalid - if (scope.compilationUnitScope().fPackage != this.packageBinding) { - scope.problemReporter().javadocInvalidReference(this.sourceStart, this.sourceEnd); - } + // Valid package references are allowed in Javadoc (https://bugs.eclipse.org/bugs/show_bug.cgi?id=281609) } else { reportInvalidType(scope); } Index: compiler/org/eclipse/jdt/internal/compiler/ast/JavadocSingleTypeReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/JavadocSingleTypeReference.java,v retrieving revision 1.27 diff -u -r1.27 JavadocSingleTypeReference.java --- compiler/org/eclipse/jdt/internal/compiler/ast/JavadocSingleTypeReference.java 12 Sep 2008 16:38:58 -0000 1.27 +++ compiler/org/eclipse/jdt/internal/compiler/ast/JavadocSingleTypeReference.java 18 Aug 2009 10:25:34 -0000 @@ -65,11 +65,7 @@ Binding binding = scope.getTypeOrPackage(tokens); if (binding instanceof PackageBinding) { this.packageBinding = (PackageBinding) binding; - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=211054 - // allow references to current package only. All other package references should be reported as invalid - if (scope.compilationUnitScope().fPackage != this.packageBinding) { - scope.problemReporter().javadocInvalidReference(this.sourceStart, this.sourceEnd); - } + // Valid package references are allowed in Javadoc (https://bugs.eclipse.org/bugs/show_bug.cgi?id=281609) } else { if (this.resolvedType.problemId() == ProblemReasons.NonStaticReferenceInStaticContext) { TypeBinding closestMatch = this.resolvedType.closestMatch();