Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java,v retrieving revision 1.10 diff -u -r1.10 JavadocTest_1_3.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java 17 May 2005 17:18:12 -0000 1.10 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java 6 Jul 2005 14:28:15 -0000 @@ -38,7 +38,7 @@ // TESTS_NAMES = new String[] { // "testBug70892conform1", "testBug70892conform2" // }; -// TESTS_NUMBERS = new int[] { 21 }; +// TESTS_NUMBERS = new int[] { 101283 }; // TESTS_RANGE = new int[] { 21, 50 }; } public static Test suite() { @@ -2801,4 +2801,212 @@ "----------\n" ); } + + /** + * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler + * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283" + */ + public void testBug101283a() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283b() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: T cannot be resolved to a type\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: F cannot be resolved to a type\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283c() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283d() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: T cannot be resolved to a type\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: F cannot be resolved to a type\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + // Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error + public void testBug101283g() { + reportMissingJavadocTags = CompilerOptions.DISABLED; + runNegativeTest( + new String[] { + "test/X.java", + "package test;\n" + + "public class X {\n" + + " int foo() { return 0; }\n" + + " class XX extends X2 {\n" + + " int bar() {\n" + + " return foo();\n" + + " }\n" + + " }\n" + + "}\n" + + "class X2 {\n" + + " int foo() {\n" + + " return 0;\n" + + " }\n" + + "}\n", + "test/Y.java", + "package test;\n" + + "public class Y {\n" + + " int foo;\n" + + " class YY extends Y2 {\n" + + " /**\n" + + " * @see #foo\n" + + " */\n" + + " int bar() {\n" + + " return foo;\n" + + " }\n" + + " }\n" + + "}\n" + + "class Y2 {\n" + + " int foo;\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in test\\X.java (at line 6)\r\n" + + " return foo();\r\n" + + " ^^^\n" + + "The method foo is defined in an inherited type and an enclosing scope\n" + + "----------\n" + + "----------\n" + + "1. ERROR in test\\Y.java (at line 9)\r\n" + + " return foo;\r\n" + + " ^^^\n" + + "The field foo is defined in an inherited type and an enclosing scope \n" + + "----------\n" + ); + } } Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java,v retrieving revision 1.13 diff -u -r1.13 JavadocTest_1_4.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java 17 May 2005 17:18:12 -0000 1.13 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java 6 Jul 2005 14:28:17 -0000 @@ -39,7 +39,7 @@ // TESTS_NAMES = new String[] { // "testBug70892conform1", "testBug70892conform2" // }; -// TESTS_NUMBERS = new int[] { 83804 }; +// TESTS_NUMBERS = new int[] { 101283 }; // TESTS_RANGE = new int[] { 21, 50 }; } public static Test suite() { @@ -2802,4 +2802,200 @@ "----------\n" ); } + + /** + * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler + * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283" + */ + public void testBug101283a() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283b() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: T cannot be resolved to a type\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: F cannot be resolved to a type\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283c() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^^^\n" + + "Javadoc: Invalid param tag name\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + public void testBug101283d() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " public class X {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + + "2. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: T cannot be resolved to a type\n" + + "----------\n" + + "3. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: F cannot be resolved to a type\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^^^^\n" + + "Syntax error, type parameters are only available if source level is 5.0\n" + + "----------\n" + ); + } + // Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error + public void testBug101283g() { + reportMissingJavadocTags = CompilerOptions.DISABLED; + runConformTest( + new String[] { + "test/X.java", + "package test;\n" + + "public class X {\n" + + " int foo() { return 0; }\n" + + " class XX extends X2 {\n" + + " int bar() {\n" + + " return foo();\n" + + " }\n" + + " }\n" + + "}\n" + + "class X2 {\n" + + " int foo() {\n" + + " return 0;\n" + + " }\n" + + "}\n", + "test/Y.java", + "package test;\n" + + "public class Y {\n" + + " int foo;\n" + + " class YY extends Y2 {\n" + + " /**\n" + + " * @see #foo\n" + + " */\n" + + " int bar() {\n" + + " return foo;\n" + + " }\n" + + " }\n" + + "}\n" + + "class Y2 {\n" + + " int foo;\n" + + "}\n" + } + ); + } } Index: src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java,v retrieving revision 1.16.2.1 diff -u -r1.16.2.1 JavadocTest_1_5.java --- src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 5 Jul 2005 10:20:45 -0000 1.16.2.1 +++ src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java 6 Jul 2005 14:28:18 -0000 @@ -37,7 +37,7 @@ static { // TESTS_PREFIX = "testBug95521"; // TESTS_NAMES = new String[] { "testBug83127a" }; -// TESTS_NUMBERS = new int[] { 83804 }; +// TESTS_NUMBERS = new int[] { 101283 }; // TESTS_RANGE = new int[] { 23, -1 }; } public static Test suite() { @@ -1878,4 +1878,255 @@ } ); } + + /** + * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler + * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283" + */ + public void testBug101283a() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^\n" + + "Javadoc: Parameter T is not declared\n" + + "----------\n" + + "2. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^\n" + + "Javadoc: Parameter F is not declared\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter L\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter R\n" + + "----------\n" + ); + } + public void testBug101283b() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " static class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: Invalid reference\n" + + "----------\n" + + "2. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: Invalid reference\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter L\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " static class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter R\n" + + "----------\n" + ); + } + public void testBug101283c() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @param \n" + + " * @param \n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 4)\n" + + " * @param \n" + + " ^\n" + + "Javadoc: Parameter T is not declared\n" + + "----------\n" + + "2. ERROR in X.java (at line 5)\n" + + " * @param \n" + + " ^\n" + + "Javadoc: Parameter F is not declared\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter L\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter R\n" + + "----------\n" + ); + } + public void testBug101283d() { + runNegativeTest( + new String[] { + "X.java", + "public class X {\n" + + "\n" + + " /**\n" + + " * @see T Variable \n" + + " * @see F Variable\n" + + " */\n" + + " class Entry {\n" + + " // empty\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in X.java (at line 4)\n" + + " * @see T Variable \n" + + " ^\n" + + "Javadoc: Invalid reference\n" + + "----------\n" + + "2. ERROR in X.java (at line 5)\n" + + " * @see F Variable\n" + + " ^\n" + + "Javadoc: Invalid reference\n" + + "----------\n" + + "3. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter L\n" + + "----------\n" + + "4. ERROR in X.java (at line 7)\n" + + " class Entry {\n" + + " ^\n" + + "Javadoc: Missing tag for parameter R\n" + + "----------\n" + ); + } + // Verify duplicate test case: bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=102735 + public void testBug101283e() { + reportMissingJavadocTags = CompilerOptions.DISABLED; + runNegativeTest( + new String[] { + "Test.java", + "public interface Test, C extends\n" + + "Test> extends Control, C>\n" + + "{\n" + + " public interface ValueRepresentationStrategy> extends ComponentFactory\n" + + " {\n" + + " /**This value must be equal to the ID of the component returned by the {@link\n" + + " ComponentFactory#createComponent(V)} method.*/\n" + + " public String getID(final VV value);\n" + + " }\n" + + "}\n" + + "class Component {}\n" + + "interface Control {}\n" + + "class SelectModel {}\n" + + "interface ComponentFactory {\n" + + " public void createComponent(V v);\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in Test.java (at line 7)\n" + + " ComponentFactory#createComponent(V)} method.*/\n" + + " ^\n" + + "Javadoc: Cannot make a static reference to the non-static type variable V\n" + + "----------\n" + ); + } + public void testBug101283f() { + reportMissingJavadocTags = CompilerOptions.DISABLED; + runConformTest( + new String[] { + "Test.java", + "public interface Test, C extends\n" + + "Test> extends Control, C>\n" + + "{\n" + + " public interface ValueRepresentationStrategy> extends ComponentFactory\n" + + " {\n" + + " /**This value must be equal to the ID of the component returned by the {@link\n" + + " ComponentFactory#createComponent(Object)} method.*/\n" + + " public String getID(final VV value);\n" + + " }\n" + + "}\n" + + "class Component {}\n" + + "interface Control {}\n" + + "class SelectModel {}\n" + + "interface ComponentFactory {\n" + + " public void createComponent(V v);\n" + + "}\n" + } + ); + } + // Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error + public void testBug101283g() { + reportMissingJavadocTags = CompilerOptions.DISABLED; + runConformTest( + new String[] { + "test/X.java", + "package test;\n" + + "public class X {\n" + + " int foo() { return 0; }\n" + + " class XX extends X2 {\n" + + " int bar() {\n" + + " return foo();\n" + + " }\n" + + " }\n" + + "}\n" + + "class X2 {\n" + + " int foo() {\n" + + " return 0;\n" + + " }\n" + + "}\n", + "test/Y.java", + "package test;\n" + + "public class Y {\n" + + " int foo;\n" + + " class YY extends Y2 {\n" + + " /**\n" + + " * @see #foo\n" + + " */\n" + + " int bar() {\n" + + " return foo;\n" + + " }\n" + + " }\n" + + "}\n" + + "class Y2 {\n" + + " int foo;\n" + + "}\n" + } + ); + } }