Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptff2003-10-14 11:12:00 +0000
committerptff2003-10-14 11:12:00 +0000
commit4ed2786f22dd00c9c1f7773433c3548c8c0f6fc3 (patch)
treeda7a88833581995c0d9f2cf8e648620e57ce4dcf /org.eclipse.jdt.core.tests.compiler/src/org
parentaabd59e4934a861167bc5ad69597bc9fd97e06dc (diff)
downloadeclipse.jdt.core-4ed2786f22dd00c9c1f7773433c3548c8c0f6fc3.tar.gz
eclipse.jdt.core-4ed2786f22dd00c9c1f7773433c3548c8c0f6fc3.tar.xz
eclipse.jdt.core-4ed2786f22dd00c9c1f7773433c3548c8c0f6fc3.zip
38091
Diffstat (limited to 'org.eclipse.jdt.core.tests.compiler/src/org')
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java262
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForClass.java1012
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForConstructor.java932
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForField.java1010
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForInterface.java2234
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForMethod.java4841
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestMixed.java766
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java2
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/TestVerifier.java18
9 files changed, 11027 insertions, 50 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
index 7ddf30ed14..e0be6b9599 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTest.java
@@ -1,59 +1,239 @@
package org.eclipse.jdt.core.tests.compiler.regression;
+import java.util.ArrayList;
import java.util.Map;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
-
import junit.framework.Test;
import junit.framework.TestSuite;
-public class AnnotationTest extends AbstractRegressionTest {
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+
+public abstract class AnnotationTest extends AbstractRegressionTest {
+boolean useLibrary = true;
+static String zipFile = "/TestAnnotationVisibility.zip";
+public static ArrayList allTestClasses = null;
+
+static {
+ allTestClasses = new ArrayList(6);
+ allTestClasses.add(AnnotationTestForClass.class);
+ allTestClasses.add(AnnotationTestForConstructor.class);
+ allTestClasses.add(AnnotationTestForField.class);
+ allTestClasses.add(AnnotationTestForInterface.class);
+ allTestClasses.add(AnnotationTestForMethod.class);
+ allTestClasses.add(AnnotationTestMixed.class);
+}
+
+
+public static void addTest(TestSuite suite, Class testClass) {
+ TestSuite innerSuite = new TestSuite(testClass);
+ suite.addTest(innerSuite);
+}
+public static Test suite() {
+ TestSuite suite = new TestSuite(AnnotationTest.class.getName());
+ for (int i=0; i<allTestClasses.size(); i++) {
+ addTest(suite, (Class) allTestClasses.get(i));
+ }
+ return new RegressionTestSetup(suite, COMPLIANCE_1_4);
+}
+
public AnnotationTest(String name) {
super(name);
}
-public static Test suite() {
- if (false) {
- TestSuite ts;
- //some of the tests depend on the order of this suite.
- ts = new TestSuite();
- ts.addTest(new AnnotationTest("test221"));
- return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+protected Map getCompilerOptions() {
+ Map options = super.getCompilerOptions();
+ options.put(CompilerOptions.OPTION_ReportInvalidAnnotation, CompilerOptions.ERROR);
+ //options.put(CompilerOptions.OPTION_ReportMissingAnnotation, CompilerOptions.IGNORE);
+ options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
+ options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
+ return options;
+}
+
+protected String[] getDefaultClassPaths() {
+ if (useLibrary) {
+ String[] classLibs = super.getDefaultClassPaths();
+ final int length = classLibs.length;
+ String[] newClassPaths = new String[length + 1];
+ System.arraycopy(classLibs, 0, newClassPaths, 0, length);
+ newClassPaths[length] = getClass().getResource(zipFile).getPath();
+ return newClassPaths;
+ } else {
+ return super.getDefaultClassPaths();
}
- return setupSuite(testClass());
}
-public void test001() {
- Map customOptions = getCompilerOptions();
- customOptions.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
- this.runNegativeTest(
+static String[] referencedClasses = null;
+static {
+ referencedClasses =
new String[] {
- "X.java",
- "public class X {\n" +
- " \n" +
- " {\n" +
- " new Z().foo();\n" +
- " }\n" +
- "}\n",
- "Z.java",
- "public class Z {\n" +
- " /** \n"+
- " * \n"+
- " * ** ** ** ** @deprecated */\n" +
- " public void foo() { \n" +
- " }\n" +
- "}\n",
- },
- "----------\n" +
- "1. WARNING in X.java (at line 4)\n" +
- " new Z().foo();\n" +
- " ^^^^^^^^^^^^^\n" +
- "The method foo() from the type Z is deprecated\n" +
- "----------\n");
-}
-
-public static Class testClass() {
- return AnnotationTest.class;
+ "test/AbstractVisibility.java",
+ "package test;\n"
+ + "public abstract class AbstractVisibility {\n"
+ + " private class AvcPrivate {\n"
+ + " private int avf_private = 10;\n"
+ + " public int avf_public = avf_private;\n"
+ + " private int avm_private() {\n"
+ + " avf_private = (new AvcPrivate()).avf_private;\n"
+ + " return avf_private;\n"
+ + " }\n"
+ + " public int avm_public() {\n"
+ + " return avm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " public class AvcPublic {\n"
+ + " private int avf_private = 10;\n"
+ + " public int avf_public = avf_private;\n"
+ + " private int avm_private() {\n"
+ + " avf_private = (new AvcPrivate()).avf_private;\n"
+ + " return avf_private;\n"
+ + " }\n"
+ + " public int avm_public() {\n"
+ + " return avm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " private int avf_private = 100;\n"
+ + " public int avf_public = avf_private;\n"
+ + " \n"
+ + " private int avm_private() {\n"
+ + " avf_private = (new AvcPrivate()).avf_private;\n"
+ + " return avf_private;\n"
+ + " }\n"
+ + " public int avm_public() {\n"
+ + " return avm_private();\n"
+ + " }\n"
+ + "}\n",
+ "test/Visibility.java",
+ "package test;\n"
+ + "public class Visibility extends AbstractVisibility {\n"
+ + " private class VcPrivate {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VcPrivate()).vf_private;\n"
+ + " avf_private = vf_private;\n"
+ + " return vf_private+avf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " };\n"
+ + " public class VcPublic {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VcPrivate()).vf_private;\n"
+ + " avf_private = vf_private;\n"
+ + " return vf_private+avf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " };\n"
+ + " private int vf_private = 100;\n"
+ + " private int avf_private = 100;\n"
+ + " public int vf_public = vf_private;\n"
+ + " public int avf_public = vf_private;\n"
+ + " \n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VcPrivate()).vf_private;\n"
+ + " avf_private = vf_private;\n"
+ + " return vf_private+avf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + "}\n",
+ "test/copy/VisibilityPackage.java",
+ "package test.copy;\n"
+ + "class VisibilityPackage {\n"
+ + " private class VpPrivate {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " public class VpPublic {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " private int vf_private = 100;\n"
+ + " public int vf_public = vf_private;\n"
+ + " \n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + "}\n",
+ "test/copy/VisibilityPublic.java",
+ "package test.copy;\n"
+ + "public class VisibilityPublic {\n"
+ + " private class VpPrivate {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " public class VpPublic {\n"
+ + " private int vf_private = 10;\n"
+ + " public int vf_public = vf_private;\n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + " }\n"
+ + " private int vf_private = 100;\n"
+ + " public int vf_public = vf_private;\n"
+ + " \n"
+ + " private int vm_private() {\n"
+ + " vf_private = (new VpPrivate()).vf_private;\n"
+ + " return vf_private;\n"
+ + " }\n"
+ + " public int vm_public() {\n"
+ + " return vm_private();\n"
+ + " }\n"
+ + "}\n" };
+}
+
+protected void runConformReferenceTest(String[] testFiles) {
+ String[] completedFiles = testFiles;
+ if (!useLibrary) {
+ completedFiles = new String[testFiles.length + referencedClasses.length];
+ System.arraycopy(referencedClasses, 0, completedFiles, 0, referencedClasses.length);
+ System.arraycopy(testFiles, 0, completedFiles, referencedClasses.length, testFiles.length);
+ }
+ runConformTest(completedFiles);
+}
+protected void runNegativeReferenceTest(String[] testFiles, String expected) {
+ String[] completedFiles = testFiles;
+ if (!useLibrary) {
+ completedFiles = new String[testFiles.length + referencedClasses.length];
+ System.arraycopy(referencedClasses, 0, completedFiles, 0, referencedClasses.length);
+ System.arraycopy(testFiles, 0, completedFiles, referencedClasses.length, testFiles.length);
+ }
+ runNegativeTest(completedFiles, expected);
}
}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForClass.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForClass.java
new file mode 100644
index 0000000000..de439441f1
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForClass.java
@@ -0,0 +1,1012 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnnotationTestForClass extends AnnotationTest {
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i=7; i<=9; i++) {
+ String meth = "test";
+ if (i<10) {
+ meth += "0";
+ }
+ if (i<100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestForClass(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+ public AnnotationTestForClass(String name) {
+ super(name);
+ }
+ public static Class testClass() {
+ return AnnotationTestForClass.class;
+ }
+
+ /* (non-Javadoc)
+ * Test unexpected tags
+ */
+ public void test001() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test002() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test003() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test004() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test005() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @return Invalid tag\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test006() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " * @return Invalid tag\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 5)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 6)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test007() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void foo() {}\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in X.java (at line 7)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+ public void test008() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " public void foo() {}\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in X.java (at line 3)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+ public void test009() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in X.java (at line 2)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+ /*
+ * (non-Javadoc) Test @see tag
+ */
+ // String references
+ public void test010() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid string\"\"\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @see \"\n"
+ + " ^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " * @see \"invalid string\"\"\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 7)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test011() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // URL Link references
+ public void test012() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @see <a href=\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test013() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Valid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // @see Classes references
+ public void test020() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test021() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test022() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test023() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // @see Field references
+ public void test030() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see #x Valid ref: accessible field\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " int x;\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test031() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " ^\n"
+ + "Annotation: x cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Valid other package visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test033() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see method references
+ public void test040() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test041() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
+ + "----------\n");
+ }
+
+ public void test042() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test043() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + "public class X {\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test044() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Vector cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test045() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo() Valid local method reference\n"
+ + " * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test046() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test047() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test048() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test049() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test050() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test051() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " */ \n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 6)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test052() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test053() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + "public class X {\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForConstructor.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForConstructor.java
new file mode 100644
index 0000000000..87e0b6139c
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForConstructor.java
@@ -0,0 +1,932 @@
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnnotationTestForConstructor extends AnnotationTest {
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i=1; i<=8; i++) {
+ String meth = "test";
+ if (i<10) {
+ meth += "0";
+ }
+ if (i<100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestForConstructor(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+ public AnnotationTestForConstructor(String name) {
+ super(name);
+ }
+ public static Class testClass() {
+ return AnnotationTestForConstructor.class;
+ }
+
+ /* (non-Javadoc)
+ * Test @deprecated tag
+ */
+ public void test001() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z();\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * \n"
+ + " * ** ** ** ** @deprecated */\n"
+ + " public Z() { \n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " new Z();\n"
+ + " ^^^^^^^\n"
+ + "The constructor Z() is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test002() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Valid tags with deprecation at end\n"
+ + " *\n"
+ + " * @param value Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public Z(int value) { \n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " new Z(2);\n"
+ + " ^^^^^^^^\n"
+ + "The constructor Z(int) is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test003() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z();\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Invalid javadoc tags with valid deprecation at end\n"
+ + " *\n"
+ + " * @param\n"
+ + " * @return\n"
+ + " * @throws Unknown\n"
+ + " * @see \"Invalid\n"
+ + " * @see Unknown\n"
+ + " * @param x\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public Z() { \n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " new Z();\n"
+ + " ^^^^^^^\n"
+ + "The constructor Z() is deprecated\n"
+ + "----------\n"
+ + "----------\n"
+ + "1. ERROR in Z.java (at line 5)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "2. ERROR in Z.java (at line 6)\n"
+ + " * @return\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "3. ERROR in Z.java (at line 7)\n"
+ + " * @throws Unknown\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in Z.java (at line 8)\n"
+ + " * @see \"Invalid\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "5. ERROR in Z.java (at line 9)\n"
+ + " * @see Unknown\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "6. ERROR in Z.java (at line 10)\n"
+ + " * @param x\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ /*
+ * (non-Javadoc) Test @see tag
+ */
+ // String references
+ public void test010() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test011() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // URL Link references
+ public void test012() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see <a href=\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test013() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // @see Classes references
+ public void test020() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test021() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test022() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test023() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // @see Field references
+ public void test030() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " int x;\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see #x Valid ref: accessible field\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test031() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " ^\n"
+ + "Annotation: x cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test033() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see method references
+ public void test040() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test041() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
+ + "----------\n");
+ }
+
+ public void test042() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test043() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test044() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Vector cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test045() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo() Valid local method reference\n"
+ + " * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test046() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test047() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test048() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test049() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test050() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test051() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " */ \n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test052() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test053() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public X() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForField.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForField.java
new file mode 100644
index 0000000000..a8180c436c
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForField.java
@@ -0,0 +1,1010 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnnotationTestForField extends AnnotationTest {
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i=50; i<=80; i++) {
+ String meth = "test";
+ if (i<10) {
+ meth += "0";
+ }
+ if (i<100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestForField(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+ public AnnotationTestForField(String name) {
+ super(name);
+ }
+ public static Class testClass() {
+ return AnnotationTestForField.class;
+ }
+
+ /*
+ * (non-Javadoc) Test @param tag
+ */
+ public void test001() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @author ffr\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test002() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid field javadoc\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test003() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid field javadoc\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test004() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid field javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test005() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @return Invalid tag\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test006() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " * @return Invalid tag\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 7)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+ /*
+ * (non-Javadoc)
+ * Test @deprecated tag
+ */
+ public void test007() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " int x;\n"
+ + " {\n"
+ + " x=(new Z()).z;\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * \n"
+ + " * ** ** ** ** @deprecated */\n"
+ + " public int z;\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " x=(new Z()).z;\n"
+ + " ^\n"
+ + "The field Z.z is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test008() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " int x;\n"
+ + " {\n"
+ + " x=(new Z()).z;\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Invalid tags with deprecation\n"
+ + " *\n"
+ + " * @param x\n"
+ + " * @return\n"
+ + " * @throws NullPointerException\n"
+ + " * @exception IllegalArgumentException\n"
+ + " * @see X\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public int z;\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " x=(new Z()).z;\n"
+ + " ^\n"
+ + "The field Z.z is deprecated\n"
+ + "----------\n"
+ + "----------\n"
+ + "1. ERROR in Z.java (at line 5)\n"
+ + " * @param x\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in Z.java (at line 6)\n"
+ + " * @return\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "3. ERROR in Z.java (at line 7)\n"
+ + " * @throws NullPointerException\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "4. ERROR in Z.java (at line 8)\n"
+ + " * @exception IllegalArgumentException\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ /*
+ * (non-Javadoc)
+ * Test @see tag
+ */
+ // String references
+ public void test010() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test011() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ // URL Link references
+ public void test012() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\"invalid\">invalid</\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see <a href=\"invalid\">invalid</\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test013() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid URL link references \n"
+ + " *\n"
+ + " * @see <A HREF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ // @see Classes references
+ public void test020() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test021() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test022() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test023() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ // @see Field references
+ public void test030() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see #str Valid ref: accessible field\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + " public String str;\n"
+ + "}\n" });
+ }
+
+ public void test031() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see #str Invalid ref: non existent field\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see #str Invalid ref: non existent field\n"
+ + " ^^^\n"
+ + "Annotation: str cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test033() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see method references
+ public void test040() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test041() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char, int[][], String[][][], Vector[][][][])\n"
+ + "----------\n");
+ }
+
+ public void test042() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test043() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test044() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Vector cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test045() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo() Valid local method reference\n"
+ + " * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test046() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test047() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test048() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test049() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test050() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test051() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " */ \n"
+ + " public int x;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test052() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+
+ public void test053() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public int x;\n"
+ + "}\n" });
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForInterface.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForInterface.java
new file mode 100644
index 0000000000..5c742e9ef3
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForInterface.java
@@ -0,0 +1,2234 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnnotationTestForInterface extends AnnotationTest {
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i = 7; i <= 9; i++) {
+ String meth = "test";
+ if (i < 10) {
+ meth += "0";
+ }
+ if (i < 100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestForInterface(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+ public AnnotationTestForInterface(String name) {
+ super(name);
+ }
+ public static Class testClass() {
+ return AnnotationTestForInterface.class;
+ }
+
+ /*
+ * (non-Javadoc)
+ * Javadoc comment of Interface
+ */
+ // Unexpected tag
+ public void test001() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test002() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test003() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test004() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test005() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @return Invalid tag\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test006() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid class javadoc\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " * @return Invalid tag\n"
+ + " * @param x Invalid tag\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @exception NullPointerException Invalid tag\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 4)\n"
+ + " * @throws NullPointerException Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 5)\n"
+ + " * @return Invalid tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 6)\n"
+ + " * @param x Invalid tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test007() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in IX.java (at line 7)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+ public void test008() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " public void foo();\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in IX.java (at line 3)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+ public void test009() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid javadoc comment\n"
+ + " */\n"
+ + "}\n" },
+ "----------\n" +
+ "1. ERROR in IX.java (at line 2)\n" +
+ " /**\n" +
+ " * Invalid javadoc comment\n" +
+ " */\n" +
+ " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n"
+ );
+ }
+
+
+ // @see tag
+ public void test010() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 5)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test011() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test012() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <a href=\"invalid\">invalid</a\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @see <a href=\"invalid\">invalid</a\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 5)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test013() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Valid URL link references \n"
+ + " *\n"
+ + " * @see <a hReF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ // @see Classes references
+ public void test020() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test021() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 5)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test022() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test023() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ // @see Field references
+ public void test030() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test031() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 5)\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " ^\n"
+ + "Annotation: x cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\IX.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Valid other package visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test033() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\IX.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see method references
+ public void test040() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
+ + "}\n" });
+ }
+
+ public void test041() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type IX is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
+ + "----------\n");
+ }
+
+ public void test042() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test043() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type IX\n"
+ + "----------\n");
+ }
+
+ public void test044() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 5)\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 6)\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type IX is not applicable for the arguments (String, String, int, String)\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 7)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "5. ERROR in IX.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "6. ERROR in IX.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Vector cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test045() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see IX#smr_foo() Valid local method reference\n"
+ + " * @see IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test046() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/IX.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test047() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test048() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 5)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test049() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 5)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test050() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 5)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test051() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\IX.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test052() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test053() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ /*
+ * (non-Javadoc)
+ * Javadoc method comment in Interface
+ */
+ // @deprecated tag
+ public void test060() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " public void foo(IX x) {\n"
+ + " x.foo();\n"
+ + " }\n"
+ + "}\n",
+ "IX.java",
+ "public interface IX {\n"
+ + " /** \n"
+ + " * \n"
+ + " * ** ** ** ** @deprecated */\n"
+ + " public void foo();\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 3)\n"
+ + " x.foo();\n"
+ + " ^^^^^^^\n"
+ + "The method foo() from the type IX is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test061() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /** @deprecated */\n"
+ + " int x=0;\n"
+ + " /**\n"
+ + " * @see #x\n"
+ + " */\n"
+ + " void foo();\n"
+ + "}\n",
+ "IY.java",
+ "/** @deprecated */\n"
+ + "public interface IY {\n"
+ + " int y=0;\n"
+ + " /**\n"
+ + " * @see IX#x\n"
+ + " * @see IY\n"
+ + " * @see IY#y\n"
+ + " */\n"
+ + " void foo();\n"
+ + "}\n",
+ "X.java",
+ "public class X {\n"
+ + " int x;\n"
+ + " /**\n"
+ + " * @see IX#x\n"
+ + " * @see IY\n"
+ + " * @see IY#y\n"
+ + " */\n"
+ + " void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @see IX#x\n"
+ + " ^\n"
+ + "Annotation: The field IX.x is deprecated\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @see IY\n"
+ + " ^^\n"
+ + "Annotation: The type IY is deprecated\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " * @see IY#y\n"
+ + " ^^\n"
+ + "Annotation: The type IY is deprecated\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 6)\n"
+ + " * @see IY#y\n"
+ + " ^\n"
+ + "Annotation: The field IY.y is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test062() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " void foo(IX x) {\n"
+ + " x.foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "IX.java",
+ "public interface IX {\n"
+ + " /** \n"
+ + " * Valid tags with deprecation\n"
+ + " *\n"
+ + " * @param x Valid param tag\n"
+ + " * @return Valid return tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(int x);\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " x.foo(2);\n"
+ + " ^^^^^^^^\n"
+ + "The method foo(int) from the type IX is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test063() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " void foo(IX x) {\n"
+ + " x.foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "IX.java",
+ "public interface IX {\n"
+ + " /** \n"
+ + " * Invalid javadoc tags with valid deprecation\n"
+ + " *\n"
+ + " * @param\n"
+ + " * @return\n"
+ + " * @throws Unknown\n"
+ + " * @see \"Invalid\n"
+ + " * @see Unknown\n"
+ + " * @param x\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(int x);\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " x.foo(2);\n"
+ + " ^^^^^^^^\n"
+ + "The method foo(int) from the type IX is deprecated\n"
+ + "----------\n"
+ + "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 7)\n"
+ + " * @throws Unknown\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 8)\n"
+ + " * @see \"Invalid\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 9)\n"
+ + " * @see Unknown\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in IX.java (at line 10)\n"
+ + " * @param x\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "6. ERROR in IX.java (at line 13)\n"
+ + " public String foo(int x);\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter x\n"
+ + "----------\n");
+ }
+
+ // @param tag
+ public void test064() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Valid @param: no tags, no args\n"
+ + " * Valid @throws/@exception: no tags, no thrown exception\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test065() {
+ this.runConformTest(new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test066() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid @param declaration: no arguments, 2 declared tags\n"
+ + " * @param x\n"
+ + " * Invalid param: not an argument on 2 lines\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @param x\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 6)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n");
+ }
+
+ public void test067() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " \n"
+ + " /**\n"
+ + " * Valid @param declaration: 3 arguments, 3 tags in right order\n"
+ + " * @param a Valid param\n"
+ + " * @param b Valid param \n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void foo(int a, int b, int c);\n"
+ + "}\n" });
+ }
+
+ public void test068() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid @param declaration: 3 arguments, 3 correct tags in right order + 2 additional\n"
+ + " * @param a Valid param\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " * @param b Valid param \n"
+ + " * @param y Invalid param: not an argument\n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void foo(char a, char b, char c);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 7)\n"
+ + " * @param y Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter y is not declared\n"
+ + "----------\n");
+ }
+
+ public void test069() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid @param: all arguments are not documented\n"
+ + " */\n"
+ + " public void foo(double a, double b, double c);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " public void foo(double a, double b, double c);\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 5)\n"
+ + " public void foo(double a, double b, double c);\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter b\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 5)\n"
+ + " public void foo(double a, double b, double c);\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter c\n"
+ + "----------\n");
+ }
+
+ public void test070() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid @param: mix of all possible errors (missing a, not argument tag and duplicated)\n"
+ + " * @param c Valid param\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " * @param b Valid param\n"
+ + " * @param c Invalid param: duplicated\n"
+ + " * @param\n"
+ + " */\n"
+ + " public void foo(double a, long b, int c);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 7)\n"
+ + " * @param c Invalid param: duplicated\n"
+ + " ^\n"
+ + "Annotation: Duplicate entry for parameter\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 8)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 10)\n"
+ + " public void foo(double a, long b, int c);\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n");
+ }
+
+ // @throws/@exception tag
+ public void test071() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Valid @throws tags: documented exception are unchecked\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test072() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 3)\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: java.awt.AWTexception cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 4)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test073() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 4)\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception EOFException is not declared\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 5)\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception FileNotFoundException is not declared\n"
+ + "----------\n");
+ }
+
+ public void test074() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid @throws tags: documented exception are unchecked but some thrown exception are invalid\n"
+ + " * @throws IllegalAccessException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " java.io.EOFException, \n"
+ + " FileNotFoundException, \n"
+ + " IOException;\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 13)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method foo\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 14)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 15)\n"
+ + " java.io.EOFException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception EOFException\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 16)\n"
+ + " FileNotFoundException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception FileNotFoundException\n"
+ + "----------\n"
+ + "5. ERROR in IX.java (at line 17)\n"
+ + " IOException;\n"
+ + " ^^^^^^^^^^^\n"
+ + "IOException cannot be resolved (or is not an exception type) for the method foo\n"
+ + "----------\n");
+ }
+
+ // @return tag
+ public void test080() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Valid return declaration\n"
+ + " *\n"
+ + " * @return Return an int\n"
+ + " */\n"
+ + " public int foo();\n"
+ + "}\n" });
+ }
+
+ public void test081() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Valid empty return declaration\n"
+ + " *\n"
+ + " * @return\n"
+ + " */\n"
+ + " public String foo();\n"
+ + "}\n" });
+ }
+
+ public void test082() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Missing return declaration\n"
+ + " */\n"
+ + " public Object[] foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " public Object[] foo();\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for return type\n"
+ + "----------\n");
+ }
+
+ public void test083() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid return declaration\n"
+ + " *\n"
+ + " * @return Dimension\n"
+ + " * @return Duplicated\n"
+ + " */\n"
+ + " public double foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 6)\n"
+ + " * @return Duplicated\n"
+ + " ^^^^^^\n"
+ + "Annotation: Duplicate entry for return type\n"
+ + "----------\n");
+ }
+
+ public void test084() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid return declaration\n"
+ + " *\n"
+ + " * @return Invalid return on void method\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @return Invalid return on void method\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ // @see tag: string
+ public void test090() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 6)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test091() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ // @see tag: URL
+ public void test092() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <a\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @see <a\n"
+ + " ^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 6)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ // @see tag: class references
+ public void test095() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test096() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 10)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test097() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test098() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test099() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ // @see tag: field references
+ public void test105() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test106() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see #x Invalid ref: non existent field\n"
+ + " ^\n"
+ + "Annotation: x cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\IX.java (at line 11)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test107() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test108() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\IX.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "6. ERROR in test\\IX.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see method references
+ public void test110() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
+ + "}\n" });
+ }
+
+ public void test111() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 6)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type IX is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
+ + "----------\n");
+ }
+
+ public void test112() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test113() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type IX\n"
+ + "----------\n");
+ }
+
+ public void test114() {
+ this.runNegativeTest(
+ new String[] {
+ "IX.java",
+ "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in IX.java (at line 5)\n"
+ + " * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in IX.java (at line 6)\n"
+ + " * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
+ + "----------\n"
+ + "3. ERROR in IX.java (at line 7)\n"
+ + " * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type IX is not applicable for the arguments (String, String, int, String)\n"
+ + "----------\n"
+ + "4. ERROR in IX.java (at line 8)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "5. ERROR in IX.java (at line 9)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "6. ERROR in IX.java (at line 9)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Vector cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test115() {
+ this.runConformTest(
+ new String[] {
+ "IX.java",
+ "import java.util.Vector;\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see IX#smr_foo() Valid local method reference\n"
+ + " * @see IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + "public interface IX {\n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test116() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/IX.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public void smr_foo();\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i);\n"
+ + " public void smr_foo(java.util.Hashtable h, Vector v, boolean b);\n"
+ + "}\n" });
+ }
+
+ public void test117() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test118() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test119() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test120() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\IX.java (at line 6)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\IX.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test121() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\IX.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\IX.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\IX.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test122() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+
+ public void test123() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/IX.java",
+ "package test;\n"
+ + "public interface IX {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public void foo();\n"
+ + "}\n" });
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForMethod.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForMethod.java
new file mode 100644
index 0000000000..5f2ae51670
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestForMethod.java
@@ -0,0 +1,4841 @@
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnnotationTestForMethod extends AnnotationTest {
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i=81; i<=81; i++) {
+ String meth = "test";
+ if (i<10) {
+ meth += "0";
+ }
+ if (i<100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestForMethod(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+ public AnnotationTestForMethod(String name) {
+ super(name);
+ }
+ public static Class testClass() {
+ return AnnotationTestForMethod.class;
+ }
+
+ /* (non-Javadoc)
+ * Test @deprecated tag
+ */
+ public void test001() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo();\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * \n"
+ + " * ** ** ** ** @deprecated */\n"
+ + " public void foo() { \n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n"
+ + "1. WARNING in X.java (at line 4)\n"
+ + " new Z().foo();\n"
+ + " ^^^^^^^^^^^^^\n"
+ + "The method foo() from the type Z is deprecated\n"
+ + "----------\n");
+ }
+
+ public void test002() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " /** @deprecated */\n" +
+ " int x;\n" +
+ " /**\n" +
+ " * @see #x\n" +
+ " */\n" +
+ " void foo() {\n" +
+ " }\n" +
+ "}\n",
+ "Y.java",
+ "/** @deprecated */\n" +
+ "public class Y {\n" +
+ " int y;\n" +
+ " /**\n" +
+ " * @see X#x\n" +
+ " * @see Y\n" +
+ " * @see Y#y\n" +
+ " */\n" +
+ " void foo() {\n" +
+ " }\n" +
+ "}\n",
+ "Z.java",
+ "public class Z {\n" +
+ " int z;\n" +
+ " /**\n" +
+ " * @see X#x\n" +
+ " * @see Y\n" +
+ " * @see Y#y\n" +
+ " */\n" +
+ " void foo() {\n" +
+ " }\n" +
+ "}\n" },
+ "----------\n" +
+ "1. ERROR in Z.java (at line 4)\n" +
+ " * @see X#x\n" +
+ " ^\n" +
+ "Annotation: The field X.x is deprecated\n" +
+ "----------\n" +
+ "2. ERROR in Z.java (at line 5)\n" +
+ " * @see Y\n" +
+ " ^\n" +
+ "Annotation: The type Y is deprecated\n" +
+ "----------\n" +
+ "3. ERROR in Z.java (at line 6)\n" +
+ " * @see Y#y\n" +
+ " ^\n" +
+ "Annotation: The type Y is deprecated\n" +
+ "----------\n" +
+ "4. ERROR in Z.java (at line 6)\n" +
+ " * @see Y#y\n" +
+ " ^\n" +
+ "Annotation: The field Y.y is deprecated\n" +
+ "----------\n"
+ );
+ }
+
+ public void test003() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Valid tags with deprecation at end\n"
+ + " *\n"
+ + " * @param x Valid param tag\n"
+ + " * @return Valid return tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n"
+ );
+ }
+
+ public void test004() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Invalid javadoc tags with valid deprecation at end\n"
+ + " *\n"
+ + " * @param\n"
+ + " * @return\n"
+ + " * @throws Unknown\n"
+ + " * @see \"Invalid\n"
+ + " * @see Unknown\n"
+ + " * @param x\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n" +
+ "----------\n" +
+ "1. ERROR in Z.java (at line 5)\n" +
+ " * @param\n" +
+ " ^^^^^\n" +
+ "Annotation: Missing parameter name\n" +
+ "----------\n" +
+ "2. ERROR in Z.java (at line 7)\n" +
+ " * @throws Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "3. ERROR in Z.java (at line 8)\n" +
+ " * @see \"Invalid\n" +
+ " ^^^^^^^^^\n" +
+ "Annotation: Invalid reference\n" +
+ "----------\n" +
+ "4. ERROR in Z.java (at line 9)\n" +
+ " * @see Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "5. ERROR in Z.java (at line 10)\n" +
+ " * @param x\n" +
+ " ^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n" +
+ "6. ERROR in Z.java (at line 13)\n" +
+ " public String foo(int x) { \n" +
+ " ^\n" +
+ "Annotation: Missing javadoc entry for parameter x\n" +
+ "----------\n"
+ );
+ }
+
+ public void test005() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Valid tags with deprecation at beginning\n"
+ + " *\n"
+ + " * @deprecated\n"
+ + " * @param x Valid param tag\n"
+ + " * @return Valid return tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n"
+ );
+ }
+
+ public void test006() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Invalid javadoc tags with valid deprecation at beginning\n"
+ + " *\n"
+ + " * @deprecated\n"
+ + " * @param\n"
+ + " * @return\n"
+ + " * @throws Unknown\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see \"Invalid\n"
+ + " * @see Unknown\n"
+ + " * @param x\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n" +
+ "----------\n" +
+ "1. ERROR in Z.java (at line 6)\n" +
+ " * @param\n" +
+ " ^^^^^\n" +
+ "Annotation: Missing parameter name\n" +
+ "----------\n" +
+ "2. ERROR in Z.java (at line 8)\n" +
+ " * @throws Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "3. ERROR in Z.java (at line 10)\n" +
+ " * @see \"Invalid\n" +
+ " ^^^^^^^^^\n" +
+ "Annotation: Invalid reference\n" +
+ "----------\n" +
+ "4. ERROR in Z.java (at line 11)\n" +
+ " * @see Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "5. ERROR in Z.java (at line 12)\n" +
+ " * @param x\n" +
+ " ^^^^^\n" +
+ "Annotation: Unexpected javadoc entry\n" +
+ "----------\n" +
+ "6. ERROR in Z.java (at line 14)\n" +
+ " public String foo(int x) { \n" +
+ " ^\n" +
+ "Annotation: Missing javadoc entry for parameter x\n" +
+ "----------\n"
+ );
+ }
+
+ public void test007() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Valid tags with deprecation in the middle\n"
+ + " *\n"
+ + " * @param x Valid param tag\n"
+ + " * @return Valid return tag\n"
+ + " * @deprecated\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n"
+ );
+ }
+
+ public void test008() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " {\n"
+ + " new Z().foo(2);\n"
+ + " }\n"
+ + "}\n",
+ "Z.java",
+ "public class Z {\n"
+ + " /** \n"
+ + " * Invalid javadoc tags with valid deprecation in the middle\n"
+ + " *\n"
+ + " * @param\n"
+ + " * @return\n"
+ + " * @throws Unknown\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see \"Invalid\n"
+ + " * @deprecated\n"
+ + " * @see Unknown\n"
+ + " */\n"
+ + " public String foo(int x) { \n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n",
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " new Z().foo(2);\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method foo(int) from the type Z is deprecated\n" +
+ "----------\n" +
+ "----------\n" +
+ "1. ERROR in Z.java (at line 5)\n" +
+ " * @param\n" +
+ " ^^^^^\n" +
+ "Annotation: Missing parameter name\n" +
+ "----------\n" +
+ "2. ERROR in Z.java (at line 7)\n" +
+ " * @throws Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "3. ERROR in Z.java (at line 9)\n" +
+ " * @see \"Invalid\n" +
+ " ^^^^^^^^^\n" +
+ "Annotation: Invalid reference\n" +
+ "----------\n" +
+ "4. ERROR in Z.java (at line 11)\n" +
+ " * @see Unknown\n" +
+ " ^^^^^^^\n" +
+ "Annotation: Unknown cannot be resolved or is not a type\n" +
+ "----------\n" +
+ "5. ERROR in Z.java (at line 13)\n" +
+ " public String foo(int x) { \n" +
+ " ^\n" +
+ "Annotation: Missing javadoc entry for parameter x\n" +
+ "----------\n"
+ );
+ }
+
+ /* (non-Javadoc)
+ * Test @param tag
+ */
+ public void test011() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid @param: no tags, no args\n"
+ + " * Valid @throws/@exception: no tags, no thrown exception\n"
+ + " */\n"
+ + " public void p_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test012() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " public void p_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test013() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param declaration: no arguments, 2 declared tags\n"
+ + " * @param x\n"
+ + " * Invalid param: not an argument on 2 lines\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " */\n"
+ + " public void p_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param x\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n");
+ }
+
+ public void test014() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " \n"
+ + " /**\n"
+ + " * Valid @param declaration: 3 arguments, 3 tags in right order\n"
+ + " * @param a Valid param\n"
+ + " * @param b Valid param \n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, int b, int c) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test015() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param declaration: 3 arguments, 3 correct tags in right order + 2 additional\n"
+ + " * @param a Valid param\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " * @param b Valid param \n"
+ + " * @param x Invalid param: not an argument\n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void p_foo(char a, char b, char c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n");
+ }
+
+ public void test016() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid @param declaration: 3 arguments, 3 tags in wrong order\n"
+ + " * @param c Valid param, not well placed\n"
+ + " * @param b Valid param, not well placed \n"
+ + " * @param a Valid param, not well placed\n"
+ + " */\n"
+ + " public void p_foo(long a, long b, long c) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test017() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param declaration: 3 arguments, 3 correct tags in wrong order + 1 duplicate tag + 1 additional\n"
+ + " * @param c Valid param, not well placed\n"
+ + " * @param a Valid param, not well placed\n"
+ + " * @param b Valid param, not well placed \n"
+ + " * @param a Invalid param: duplicated\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " */\n"
+ + " public void p_foo(float a, float b, float c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 7)\n"
+ + " * @param a Invalid param: duplicated\n"
+ + " ^\n"
+ + "Annotation: Duplicate entry for parameter\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 8)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n");
+ }
+
+ public void test020() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: all arguments are not documented\n"
+ + " */\n"
+ + " public void p_foo(double a, double b, double c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " public void p_foo(double a, double b, double c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " public void p_foo(double a, double b, double c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter b\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 5)\n"
+ + " public void p_foo(double a, double b, double c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter c\n"
+ + "----------\n");
+ }
+
+ public void test021() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: b and c arguments are not documented\n"
+ + " * @param a Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter b\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter c\n"
+ + "----------\n");
+ }
+
+ public void test022() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: a and c arguments are not documented\n"
+ + " * @param b Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter c\n"
+ + "----------\n");
+ }
+
+ public void test023() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: a and b arguments are not documented\n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter b\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: c argument is not documented\n"
+ + " * @param a Valid param\n"
+ + " * @param b Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 7)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter c\n"
+ + "----------\n");
+ }
+
+ public void test025() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: a argument is not documented + b and c are not well placed\n"
+ + " * @param c Valid param\n"
+ + " * @param b Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 7)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n");
+ }
+
+ public void test026() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: b argument is not documented + a and c are not well placed\n"
+ + " * @param c Valid param\n"
+ + " * @param a Valid param\n"
+ + " */\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 7)\n"
+ + " public void p_foo(int a, char b, long c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter b\n"
+ + "----------\n");
+ }
+
+ public void test030() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: mix of all possible errors (missing a, not argument tag and duplicated)\n"
+ + " * @param c Valid param\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " * @param b Valid param\n"
+ + " * @param c Invalid param: duplicated\n"
+ + " */\n"
+ + " public void p_foo(double a, long b, int c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @param x Invalid param: not an argument\n"
+ + " ^\n"
+ + "Annotation: Parameter x is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @param c Invalid param: duplicated\n"
+ + " ^\n"
+ + "Annotation: Duplicate entry for parameter\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 9)\n"
+ + " public void p_foo(double a, long b, int c) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n");
+ }
+
+ public void test031() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: missing parameter name\n"
+ + " * @param\n"
+ + " */\n"
+ + " public void p_foo(String a) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(String a) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter a\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: missing parameter name + valid param \n"
+ + " * @param\n"
+ + " * @param x\n"
+ + " */\n"
+ + " public void p_foo(int x) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n");
+ }
+
+ public void test033() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: missing parameter names + valid params \n"
+ + " * @param h\n"
+ + " * @param\n"
+ + " * @param h\n"
+ + " * @param\n"
+ + " */\n"
+ + " public void p_foo(java.util.Hashtable h, float f) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @param h\n"
+ + " ^\n"
+ + "Annotation: Duplicate entry for parameter\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @param\n"
+ + " ^^^^^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " public void p_foo(java.util.Hashtable h, float f) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter f\n"
+ + "----------\n");
+ }
+
+ public void test034() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: missing parameter name + valid param \n"
+ + " * @param *\n"
+ + " * @param ?\n"
+ + " */\n"
+ + " public void p_foo(int x) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param *\n"
+ + " ^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @param ?\n"
+ + " ^\n"
+ + "Annotation: Missing parameter name\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " public void p_foo(int x) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter x\n"
+ + "----------\n");
+ }
+
+ public void test035() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid @param but compiler errors\n"
+ + " * @param a Valid param\n"
+ + " * @param b Valid param\n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void p_foo(inr a, int b, int c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 8)\n"
+ + " public void p_foo(inr a, int b, int c) {\n"
+ + " ^^^\n"
+ + "inr cannot be resolved (or is not a valid type) for the argument a of the method p_foo\n"
+ + "----------\n");
+ }
+
+ public void test036() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param + compiler errors\n"
+ + " * @param b Valid param\n"
+ + " * @param b Valid param\n"
+ + " * @param c Valid param\n"
+ + " */\n"
+ + " public void p_foo(inr a, inx b, inq c) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 8)\n"
+ + " public void p_foo(inr a, inx b, inq c) {\n"
+ + " ^^^\n"
+ + "inr cannot be resolved (or is not a valid type) for the argument a of the method p_foo\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 8)\n"
+ + " public void p_foo(inr a, inx b, inq c) {\n"
+ + " ^^^\n"
+ + "inx cannot be resolved (or is not a valid type) for the argument b of the method p_foo\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " public void p_foo(inr a, inx b, inq c) {\n"
+ + " ^^^\n"
+ + "inq cannot be resolved (or is not a valid type) for the argument c of the method p_foo\n"
+ + "----------\n");
+ }
+
+ public void test037() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: class reference instead of param name\n"
+ + " * @param java.lang.Hashtable\n"
+ + " */\n"
+ + " public void p_foo(int x) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @param java.lang.Hashtable\n"
+ + " ^^^^\n"
+ + "Annotation: Parameter java is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " public void p_foo(int x) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter x\n"
+ + "----------\n");
+ }
+
+ public void test038() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Hashtable;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid @param: class reference instead of param name + unused import\n"
+ + " * @param Hashtable\n"
+ + " */\n"
+ + " public void p_foo(int x) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in X.java (at line 1)\n"
+ + " import java.util.Hashtable;\n"
+ + " ^^^^^^^^^^^^^^^^^^^\n"
+ + "The import java.util.Hashtable is never used\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @param Hashtable\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Parameter Hashtable is not declared\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " public void p_foo(int x) {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc entry for parameter x\n"
+ + "----------\n");
+ }
+
+ /* (non-Javadoc)
+ * Test @throws/@exception tag
+ */
+ public void test050() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid @throws tags: documented exception are unchecked\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void t_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test051() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws IllegalArgumenException.. Invalid exception: invalid class name\n"
+ + " * @exception IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
+ + " */\n"
+ + " public void t_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws IllegalArgumenException.. Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid class name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @exception IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid class name\n"
+ + "----------\n");
+ }
+
+ public void test052() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void t_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: java.awt.AWTexception cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test053() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " */\n"
+ + " public void t_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception EOFException is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception FileNotFoundException is not declared\n"
+ + "----------\n");
+ }
+
+ public void test055() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid @throws tags: documented exception are unchecked but method throws an unknown exception\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 9)\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n");
+ }
+
+ public void test056() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws IllegalArgumenException._ Invalid exception: invalid class name\n"
+ + " * @exception IllegalArgumen.*.Exception.. Invalid exception: invalid class name\n"
+ + " */\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws IllegalArgumenException._ Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: IllegalArgumenException cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @exception IllegalArgumen.*.Exception.. Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid class name\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n");
+ }
+
+ public void test057() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: java.awt.AWTexception cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n");
+ }
+
+ public void test058() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " */\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception EOFException is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception FileNotFoundException is not declared\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " public void t_foo() throws InvalidException {\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n");
+ }
+
+ public void test060() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @throws tags: documented exception are unchecked but thrown exception is not documented\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 9)\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n");
+ }
+
+ public void test061() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws /IllegalArgumenException.. Invalid exception: invalid class name\n"
+ + " * @exception .IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
+ + " */\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws /IllegalArgumenException.. Invalid exception: invalid class name\n"
+ + " ^^^^^^\n"
+ + "Annotation: Missing class name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @exception .IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
+ + " ^^\n"
+ + "Annotation: Invalid class name\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n");
+ }
+
+ public void test062() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: java.awt.AWTexception cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n");
+ }
+
+ public void test063() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception EOFException is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception FileNotFoundException is not declared\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 6)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " public void t_foo() throws IllegalAccessException {\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n");
+ }
+
+ public void test065() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid @throws tags: documented exception are unchecked but some thrown exception are invalid\n"
+ + " * @throws IllegalAccessException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
+ + " * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
+ + " */\n"
+ + " public void t_foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " IllegalArgumentException\n"
+ + " {}\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 12)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 13)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n");
+ }
+
+ public void test066() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws %IllegalArgumenException Invalid exception: invalid class name\n"
+ + " * @exception (IllegalArgumen Invalid exception: invalid class name\n"
+ + " * @exception \"IllegalArgumen Invalid exception: invalid class name\n"
+ + " */\n"
+ + " public void t_foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " IllegalArgumentException\n"
+ + " {}\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws %IllegalArgumenException Invalid exception: invalid class name\n"
+ + " ^^^^^^\n"
+ + "Annotation: Missing class name\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @exception (IllegalArgumen Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Missing class name\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 5)\n"
+ + " * @exception \"IllegalArgumen Invalid exception: invalid class name\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid class name\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " IllegalAccessException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 10)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 11)\n"
+ + " IllegalArgumentException\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalArgumentException\n"
+ + "----------\n");
+ }
+
+ public void test067() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " */\n"
+ + " public void t_foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " IllegalArgumentException\n"
+ + " {}\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 3)\n"
+ + " * @throws java.awt.AWTexception Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: java.awt.AWTexception cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 4)\n"
+ + " * @throws IOException Invalid exception: unknown type\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: IOException cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " IllegalAccessException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 10)\n"
+ + " IllegalArgumentException\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalArgumentException\n"
+ + "----------\n");
+ }
+
+ public void test068() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " */\n"
+ + " public void t_foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " IllegalArgumentException\n"
+ + " {}\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 4)\n"
+ + " * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception EOFException is not declared\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 5)\n"
+ + " * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Exception FileNotFoundException is not declared\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " IllegalAccessException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " IllegalArgumentException\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalArgumentException\n"
+ + "----------\n");
+ }
+
+ public void test069() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.io.FileNotFoundException;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " */\n"
+ + " public void t_foo() throws\n"
+ + " IllegalAccessException, \n"
+ + " InvalidException, \n"
+ + " String, \n"
+ + " java.io.EOFException, \n"
+ + " FileNotFoundException, \n"
+ + " IOException, \n"
+ + " IllegalArgumentException\n"
+ + " {}\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " IllegalAccessException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalAccessException\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " InvalidException, \n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "InvalidException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " String, \n"
+ + " ^^^^^^\n"
+ + "Cannot throw the type String\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " java.io.EOFException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception EOFException\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " FileNotFoundException, \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception FileNotFoundException\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " IOException, \n"
+ + " ^^^^^^^^^^^\n"
+ + "IOException cannot be resolved (or is not an exception type) for the method t_foo\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 12)\n"
+ + " IllegalArgumentException\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IllegalArgumentException\n"
+ + "----------\n");
+ }
+
+ /* (non-Javadoc)
+ * Test @return tag
+ */
+ public void test070() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid return declaration\n"
+ + " *\n"
+ + " * @return Return an int\n"
+ + " */\n"
+ + " public int s_foo() {\n"
+ + " return 0;\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test071() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid empty return declaration\n"
+ + " *\n"
+ + " * @return\n"
+ + " */\n"
+ + " public String s_foo() {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test072() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid return declaration\n"
+ + " *\n"
+ + " * @return Vector A list of things\n"
+ + " */\n"
+ + " public java.util.Vector s_foo() {\n"
+ + " return new java.util.Vector();\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test073() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Missing return declaration\n"
+ + " */\n"
+ + " public Object[] s_foo() {\n"
+ + " return new Object[0];\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " public Object[] s_foo() {\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for return type\n"
+ + "----------\n");
+ }
+
+ public void test074() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid return declaration\n"
+ + " *\n"
+ + " * @return\n"
+ + " * @return Dimension\n"
+ + " */\n"
+ + " public double s_foo() {\n"
+ + " return 3.14;\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @return Dimension\n"
+ + " ^^^^^^\n"
+ + "Annotation: Duplicate entry for return type\n"
+ + "----------\n");
+ }
+
+ public void test075() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid return declaration\n"
+ + " *\n"
+ + " * @return Invalid return on void method\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @return Invalid return on void method\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test076() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid return declaration\n"
+ + " *\n"
+ + " * @return Invalid return on void method\n"
+ + " * @return\n"
+ + " * @return Invalid return on void method\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @return Invalid return on void method\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @return\n"
+ + " ^^^^^^\n"
+ + "Annotation: Duplicate entry for return type\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @return Invalid return on void method\n"
+ + " ^^^^^^\n"
+ + "Annotation: Duplicate entry for return type\n"
+ + "----------\n");
+ }
+
+ /* (non-Javadoc)
+ * Test @see tag
+ */
+ // String references
+ public void test080() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid string references \n"
+ + " *\n"
+ + " * @see \"\n"
+ + " * @see \"unterminated string\n"
+ + " * @see \"invalid string\"\"\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see \"\n"
+ + " ^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see \"unterminated string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see \"invalid string\"\"\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see \"invalid\" no text allowed after the string\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test081() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid string references \n"
+ + " *\n"
+ + " * @see \"Valid normal string\"\n"
+ + " * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ // URL Link references
+ public void test085() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid URL link references \n"
+ + " *\n"
+ + " * @see <\n"
+ + " * @see <a\n"
+ + " * @see <a hre\n"
+ + " * @see <a href\n"
+ + " * @see <a href=\n"
+ + " * @see <a href=\"\n"
+ + " * @see <a href=\"invalid\n"
+ + " * @see <a href=\"invalid\"\n"
+ + " * @see <a href=\"invalid\">\n"
+ + " * @see <a href=\"invalid\">invalid\n"
+ + " * @see <a href=\"invalid\">invalid<\n"
+ + " * @see <a href=\"invalid\">invalid</\n"
+ + " * @see <a href=\"invalid\">invalid</a\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see <\n"
+ + " ^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see <a\n"
+ + " ^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see <a hre\n"
+ + " ^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see <a href\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " * @see <a href=\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 10)\n"
+ + " * @see <a href=\"\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 11)\n"
+ + " * @see <a href=\"invalid\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 12)\n"
+ + " * @see <a href=\"invalid\"\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "9. ERROR in X.java (at line 13)\n"
+ + " * @see <a href=\"invalid\">\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "10. ERROR in X.java (at line 14)\n"
+ + " * @see <a href=\"invalid\">invalid\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "11. ERROR in X.java (at line 15)\n"
+ + " * @see <a href=\"invalid\">invalid<\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "12. ERROR in X.java (at line 16)\n"
+ + " * @see <a href=\"invalid\">invalid</\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "13. ERROR in X.java (at line 17)\n"
+ + " * @see <a href=\"invalid\">invalid</a\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "14. ERROR in X.java (at line 18)\n"
+ + " * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n");
+ }
+
+ public void test086() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Valid URL references \n"
+ + " *\n"
+ + " * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
+ + " * @see <A HREF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
+ + " * @see <a hReF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test087() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid URL references \n"
+ + " *\n"
+ + " * @see <a xref=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
+ + " * @see <b href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
+ + " * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</b>\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see <a xref=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see <b href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</b>\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid URL link format\n"
+ + "----------\n");
+ }
+
+ // @see Classes references
+ public void test090() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local classes references \n"
+ + " *\n"
+ + " * @see Visibility Valid ref: local class \n"
+ + " * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " * @see test.Visibility Valid ref: local class \n"
+ + " * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test091() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local classes references \n"
+ + " *\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Unknown Invalid ref: unknown class \n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test092() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test093() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
+ + " * @see VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ public void test094() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test095() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid external classes references \n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPackage Invalid ref: non visible class \n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
+ + " * @see test.copy.VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPackage Invalid ref: non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n");
+ }
+
+ // @see Field references
+ public void test100() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " int x;\n"
+ + " /**\n"
+ + " * Valid local class field references\n"
+ + " *\n"
+ + " * @see #x Valid ref: visible field\n"
+ + " * @see Visibility#vf_public Valid ref: visible field\n"
+ + " * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test101() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local class field references\n"
+ + " *\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " * @see Visibility.VcPrivate#vf_private Invalid ref: non visible inner class (non visible field)\n"
+ + " * @see Visibility.VcPrivate#vf_public Invalid ref: non visible inner class (public field)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#unknown Invalid ref: non existent field\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vf_private Invalid ref: non visible field\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#vf_private Invalid ref: non visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPrivate#vf_public Invalid ref: non visible inner class (public field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test102() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid super class field references in the same package\n"
+ + " *\n"
+ + " * @see Visibility#avf_public Valid ref: visible inherited field\n"
+ + " * @see Visibility.AvcPublic#avf_public Valid ref: visible field of inherited visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test103() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid super class field references in the same package\n"
+ + " *\n"
+ + " * @see Visibility#avf_private Invalid ref: non visible inherited field\n"
+ + " * @see Visibility.AvcPrivate#avf_private Invalid ref: inherited non visible inner class (non visible field)\n"
+ + " * @see Visibility.AvcPrivate#avf_public Invalid ref: inherited non visible inner class (visible field)\n"
+ + " * @see Visibility.AvcPublic#avf_private Invalid ref: non visible field of inherited visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#avf_private Invalid ref: non visible inherited field\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The field avf_private is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate#avf_private Invalid ref: inherited non visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.AvcPrivate#avf_public Invalid ref: inherited non visible inner class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.AvcPublic#avf_private Invalid ref: non visible field of inherited visible inner class\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The field avf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test104() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " * @see VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
+ + " * @see VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
+ + " * @see VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
+ + " * @see VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
+ + " * @see VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
+ + " * @see VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
+ + " * @see VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
+ + " * @see VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "8. ERROR in test\\X.java (at line 13)\n"
+ + " * @see VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "9. ERROR in test\\X.java (at line 14)\n"
+ + " * @see VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "10. ERROR in test\\X.java (at line 15)\n"
+ + " * @see VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test105() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " * @see test.copy.VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
+ + " * @see test.copy.VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "8. ERROR in test\\X.java (at line 13)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "9. ERROR in test\\X.java (at line 14)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test106() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "8. ERROR in test\\X.java (at line 13)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "9. ERROR in test\\X.java (at line 14)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: VisibilityPublic cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test107() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" }
+ );
+ }
+
+ public void test108() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 13)\n"
+ + " * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ public void test109() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" }
+ );
+ }
+
+ public void test110() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class fields references\n"
+ + " *\n"
+ + " * @see test.copy.VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " * @see test.copy.VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: unknown cannot be resolved or is not a field\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The field vf_private is not visible\n"
+ + "----------\n");
+ }
+
+ // @see local method references
+ public void test115() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references with array\n"
+ + " * \n"
+ + " * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
+ + " * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
+ + " * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test116() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (wrong brackets peer)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[ , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[]], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][]], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[]][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][[]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][]][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][[][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[]][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[[][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector][][][]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(char[ , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(char] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(char[] , int[][, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(char[] , int[]], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(char[] , int[[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(char[] , int][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 12)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 13)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][]], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "9. ERROR in X.java (at line 14)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "10. ERROR in X.java (at line 15)\n"
+ + " * @see #smr_foo(char[] , int[][], String[]][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "11. ERROR in X.java (at line 16)\n"
+ + " * @see #smr_foo(char[] , int[][], String[[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "12. ERROR in X.java (at line 17)\n"
+ + " * @see #smr_foo(char[] , int[][], String][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "13. ERROR in X.java (at line 18)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "14. ERROR in X.java (at line 19)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "15. ERROR in X.java (at line 20)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][[]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "16. ERROR in X.java (at line 21)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][]][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "17. ERROR in X.java (at line 22)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][[][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "18. ERROR in X.java (at line 23)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[]][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "19. ERROR in X.java (at line 24)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[[][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "20. ERROR in X.java (at line 25)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test117() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char, int[][], String[][][], Vector[][][][])\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(char[] , int[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[], String[][][], Vector[][][][])\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(char[] , int, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int, String[][][], Vector[][][][])\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(char[] , int[][], String[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[], Vector[][][][])\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(char[] , int[][], String, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String, Vector[][][][])\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 12)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 13)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][])\n"
+ + "----------\n"
+ + "9. ERROR in X.java (at line 14)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[])\n"
+ + "----------\n"
+ + "10. ERROR in X.java (at line 15)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector)\n"
+ + "----------\n");
+ }
+
+ public void test118() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references with array (non applicable arrays)\n"
+ + " * \n"
+ + " * @see #smr_foo(char[1] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[2][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][3], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[4][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][5][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][6], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[7][][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][8][][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][9][]) Invalid ref: invalid arguments declaration\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][10]) Invalid ref: invalid arguments declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(char[1] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(char[] , int[2][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(char[] , int[][3], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(char[] , int[][], String[4][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][5][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][6], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 12)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[7][][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 13)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][8][][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "9. ERROR in X.java (at line 14)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][9][]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "10. ERROR in X.java (at line 15)\n"
+ + " * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][10]) Invalid ref: invalid arguments declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+ public void test120() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo() Valid local method reference\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
+ + " * @see #smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see #smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
+ + " * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see #smr_foo(String, String, int) Valid local method reference\n"
+ + " * @see #smr_foo(java.lang.String, String, int) Valid local method reference \n"
+ + " * @see #smr_foo(String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see #smr_foo(String x,String y,int z) Valid local method reference \n"
+ + " * @see #smr_foo(java.lang.String x,String y, int z) Valid local method reference \n"
+ + " * @see #smr_foo(String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see #smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see #smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
+ + " * @see #smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
+ + " * @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
+ + " * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test121() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " * @see #smrfoo() Invalid ref: undefined local method reference\n"
+ + " * @see #smr_FOO() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smrfoo() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^\n"
+ + "Annotation: The method smrfoo() is undefined for the type X\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_FOO() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_FOO() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test122() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(boolean, int, byte, short, char, long, float) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char, long) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean, int, byte, short) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean, int, byte) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean, int) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char, long, float) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char, long, float)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char, long) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char, long)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(boolean, int, byte, short, char) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(boolean, int, byte, short) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short)\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(boolean, int, byte) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte)\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(boolean, int) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int)\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
+ + "----------\n");
+ }
+
+ public void test123() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(int, String, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, int, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String, String) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(String) Invalid ref: local method not applicable\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(int, String, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (int, String, String)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(String, int, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int, String)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(String, String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
+ + "----------\n");
+ }
+
+ public void test124() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(java.util.Hashtable,boolean,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(boolean,java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(java.util.Hashtable) Invalid ref: local method not applicable\n"
+ + " * @see #smr_foo(java.util.Vector) Invalid ref: local method not applicable\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(java.util.Hashtable,boolean,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, boolean, Vector)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(boolean,java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (boolean, Hashtable, Vector)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(java.util.Hashtable) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable)\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(java.util.Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Vector)\n"
+ + "----------\n");
+ }
+
+ public void test125() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(boolean,int i,byte y,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int, byte y, short s, char c, long l, float f, double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float f,double) Invalid reference: mixed argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(boolean,int i,byte y,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(boolean b,int, byte y, short s, char c, long l, float f, double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(boolean b,int i,byte,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char,long l,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long,float f,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 12)\n"
+ + " * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float f,double) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test126() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(String,String y,int z) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(java.lang.String x,String, int z) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(String x,java.lang.String y,int) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(java.lang.String,java.lang.String,int z) Invalid reference: mixed argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see #smr_foo(String,String y,int z) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(java.lang.String x,String, int z) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(String x,java.lang.String y,int) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(java.lang.String,java.lang.String,int z) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test127() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see #smr_foo(Hashtable,java.util.Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " * @see #smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " * @see #smr_foo(Hashtable a, java.util.Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " * @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(java.util.Hashtable, Vector, boolean c) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(Hashtable a, java.util.Vector, boolean c) Invalid reference: mixed argument declaration\n"
+ + " * @see #smr_foo(Hashtable, Vector b, boolean c) Invalid reference: mixed argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see #smr_foo(Hashtable,java.util.Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see #smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see #smr_foo(Hashtable a, java.util.Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " * @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in X.java (at line 11)\n"
+ + " * @see #smr_foo(java.util.Hashtable, Vector, boolean c) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in X.java (at line 12)\n"
+ + " * @see #smr_foo(Hashtable a, java.util.Vector, boolean c) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "8. ERROR in X.java (at line 13)\n"
+ + " * @see #smr_foo(Hashtable, Vector b, boolean c) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test130() {
+ this.runConformTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo() Valid local method reference\n"
+ + " * @see X#smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
+ + " * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see X#smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
+ + " * @see X#smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see X#smr_foo(String, String, int) Valid local method reference\n"
+ + " * @see X#smr_foo(java.lang.String, String, int) Valid local method reference \n"
+ + " * @see X#smr_foo(String, java.lang.String, int) Valid local method reference \n"
+ + " * @see X#smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see X#smr_foo(String x,String y,int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.lang.String x,String y, int z) Valid local method reference \n"
+ + " * @see X#smr_foo(String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see X#smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
+ + " * @see X#smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
+ + " * @see X#smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
+ + " * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test131() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see X#unknown() Invalid ref: undefined local method reference\n"
+ + " * @see X#smrfoo() Invalid ref: undefined local method reference\n"
+ + " * @see X#smr_FOO() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 5)\n"
+ + " * @see X#unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 6)\n"
+ + " * @see X#smrfoo() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^\n"
+ + "Annotation: The method smrfoo() is undefined for the type X\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 7)\n"
+ + " * @see X#smr_FOO() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_FOO() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test132() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo(Object) Invalid ref: local method not applicable\n"
+ + " * @see X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
+ + " * @see X#smr_foo(String, int) Invalid ref: local method not applicable\n"
+ + " * @see X#smr_foo(String) Invalid ref: local method not applicable\n"
+ + " * @see X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see X#smr_foo(Object) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo() in the type X is not applicable for the arguments (Object)\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (int, byte, short, char, long, float, double)\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see X#smr_foo(String, int) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int)\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see X#smr_foo(String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "5. ERROR in X.java (at line 10)\n"
+ + " * @see X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
+ + "----------\n");
+ }
+
+ public void test133() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
+ + " * @see X#smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " * @see X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in X.java (at line 6)\n"
+ + " * @see X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in X.java (at line 7)\n"
+ + " * @see X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in X.java (at line 8)\n"
+ + " * @see X#smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Hashtable cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in X.java (at line 9)\n"
+ + " * @see X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test135() {
+ this.runConformTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String, String, int) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String, String, int) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String, java.lang.String, int) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String, java.lang.String, int) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String x,String y,int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String x,String y, int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test136() {
+ this.runNegativeTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#unknown() Invalid ref: undefined local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smrfoo() Invalid ref: undefined local method reference\n"
+ + " * @see test.deep.qualified.name.p.X#smr_FOO() Invalid ref: undefined local method reference\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 6)\n"
+ + " * @see test.deep.qualified.name.p.X#unknown() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type X\n"
+ + "----------\n"
+ + "2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n"
+ + " * @see test.deep.qualified.name.p.X#smrfoo() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^\n"
+ + "Annotation: The method smrfoo() is undefined for the type X\n"
+ + "----------\n"
+ + "3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_FOO() Invalid ref: undefined local method reference\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_FOO() is undefined for the type X\n"
+ + "----------\n");
+ }
+
+ public void test137() {
+ this.runNegativeTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Object) Invalid ref: local method not applicable\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String, int) Invalid ref: local method not applicable\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String) Invalid ref: local method not applicable\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo() {\n"
+ + " }\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Object) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo() in the type X is not applicable for the arguments (Object)\n"
+ + "----------\n"
+ + "2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (int, byte, short, char, long, float, double)\n"
+ + "----------\n"
+ + "3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 9)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String, int) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int)\n"
+ + "----------\n"
+ + "4. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 10)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "5. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 11)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
+ + "----------\n");
+ }
+
+ public void test138() {
+ this.runNegativeTest(
+ new String[] {
+ "test/deep/qualified/name/p/X.java",
+ "package test.deep.qualified.name.p;\n"
+ + "import java.util.Vector;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid local methods references\n"
+ + " * \n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "\n"
+ + " // Empty methods definition for reference\n"
+ + " public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
+ + " }\n"
+ + " public void smr_foo(String str1, java.lang.String str2, int i) {\n"
+ + " }\n"
+ + " public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\deep\\qualified\\name\\p\\X.java (at line 2)\n"
+ + " import java.util.Vector;\n"
+ + " ^^^^^^^^^^^^^^^^\n"
+ + "The import java.util.Vector is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 9)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 10)\n"
+ + " * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test140() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid package class methods references\n"
+ + " * \n"
+ + " * @see Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " * @see test.Visibility#vm_public() Valid ref: visible method\n"
+ + " * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test141() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-existence)\n"
+ + " * \n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#unknown() Invalid ref: non-existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type Visibility.VcPublic\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Unknown#vm_public() Invalid ref: non-existent class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Unknown cannot be resolved or is not a type\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
+ + " ^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Visibility.Unknown cannot be resolved or is not a type\n"
+ + "----------\n");
+ }
+
+ public void test142() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see Visibility.VcPrivate#vm_private() Invalid ref: non visible inner class (non visible method)\n"
+ + " * @see Visibility.VcPrivate#vm_private(boolean, String) Invalid ref: non visible inner class (non applicable method)\n"
+ + " * @see Visibility.VcPrivate#vm_public() Invalid ref: non visible inner class (visible method)\n"
+ + " * @see Visibility.VcPrivate#vm_public(Object, float) Invalid ref: non visible inner class (non applicable visible method)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private() Invalid ref: non-visible method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPrivate#vm_private() Invalid ref: non visible inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#vm_private(boolean, String) Invalid ref: non visible inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPrivate#vm_public() Invalid ref: non visible inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.VcPrivate#vm_public(Object, float) Invalid ref: non visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.VcPrivate is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type Visibility.VcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test143() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test144() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package class methods references (invalid arguments)\n"
+ + " * \n"
+ + " * @see Visibility#vm_private(,) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility#vm_public(,String) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.VcPrivate#vm_private(char, double d) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.VcPrivate#vm_public(#) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.VcPublic#vm_private(a a a) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.VcPublic#vm_public(####) Invalid ref: Invalid ref: invalid argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#vm_private(,) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#vm_public(,String) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.VcPrivate#vm_private(char, double d) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.VcPrivate#vm_public(#) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.VcPublic#vm_private(a a a) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.VcPublic#vm_public(####) Invalid ref: Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test145() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid package super class methods references\n"
+ + " * \n"
+ + " * @see Visibility#avm_public() Valid ref: visible inherited method\n"
+ + " * @see Visibility.AvcPublic#avm_public() Valid ref: visible inherited method in visible inner class\n"
+ + " * @see test.Visibility#avm_public() Valid ref: visible inherited method\n"
+ + " * @see test.Visibility.AvcPublic#avm_public() Valid ref: visible inherited method in visible inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test146() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package super class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see Visibility#avm_private() Invalid ref: non-visible inherited method\n"
+ + " * @see Visibility.AvcPrivate#unknown() Invalid ref: non visible inherited inner class (non existent method)\n"
+ + " * @see Visibility.AvcPrivate#avm_private() Invalid ref: non visible inherited inner class (non visible method)\n"
+ + " * @see Visibility.AvcPrivate#avm_private(boolean, String) Invalid ref: non visible inherited inner class (non applicable method)\n"
+ + " * @see Visibility.AvcPrivate#avm_public() Invalid ref: non visible inherited inner class (visible method)\n"
+ + " * @see Visibility.AvcPrivate#avm_public(Object, float) Invalid ref: non visible inherited inner class (non applicable visible method)\n"
+ + " * @see Visibility.AvcPublic#avm_private() Invalid ref: non visible inherited method in visible inherited inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#avm_private() Invalid ref: non-visible inherited method\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The method avm_private() from the type AbstractVisibility is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility.AvcPrivate#unknown() Invalid ref: non visible inherited inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.AvcPrivate#avm_private() Invalid ref: non visible inherited inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.AvcPrivate#avm_private(boolean, String) Invalid ref: non visible inherited inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.AvcPrivate#avm_public() Invalid ref: non visible inherited inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.AvcPrivate#avm_public(Object, float) Invalid ref: non visible inherited inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type Visibility.AvcPrivate is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see Visibility.AvcPublic#avm_private() Invalid ref: non visible inherited method in visible inherited inner class\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The method avm_private() from the type AbstractVisibility.AvcPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test147() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package super class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see Visibility#avm_private(int) Invalid ref: non-applicable inherited method\n"
+ + " * @see Visibility#avm_public(String) Invalid ref: non-applicable inherited method\n"
+ + " * @see Visibility.AvcPublic#avm_private(Integer, byte) Invalid ref: non applicable inherited method in visible inner class\n"
+ + " * @see Visibility.AvcPublic#avm_public(Double z, Boolean x) Invalid ref: non applicable inherited method in visible inner class\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#avm_private(int) Invalid ref: non-applicable inherited method\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The method avm_private() in the type AbstractVisibility is not applicable for the arguments (int)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#avm_public(String) Invalid ref: non-applicable inherited method\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method avm_public() in the type AbstractVisibility is not applicable for the arguments (String)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.AvcPublic#avm_private(Integer, byte) Invalid ref: non applicable inherited method in visible inner class\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: The method avm_private() in the type AbstractVisibility.AvcPublic is not applicable for the arguments (Integer, byte)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.AvcPublic#avm_public(Double z, Boolean x) Invalid ref: non applicable inherited method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method avm_public() in the type AbstractVisibility.AvcPublic is not applicable for the arguments (Double, Boolean)\n"
+ + "----------\n");
+ }
+
+ public void test148() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid package super class methods references (invalid arguments)\n"
+ + " * \n"
+ + " * @see Visibility#avm_private(,,,,) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility#avm_public(String,,,) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.AvcPrivate#avm_private(char c, double) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.AvcPrivate#avm_public(*) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.AvcPublic#avm_private(a a a) Invalid ref: invalid argument declaration\n"
+ + " * @see Visibility.AvcPublic#avm_public(*****) Invalid ref: invalid argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see Visibility#avm_private(,,,,) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see Visibility#avm_public(String,,,) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see Visibility.AvcPrivate#avm_private(char c, double) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see Visibility.AvcPrivate#avm_public(*) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see Visibility.AvcPublic#avm_private(a a a) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see Visibility.AvcPublic#avm_public(*****) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test150() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.*;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
+ + " * @see VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
+ + " * @see VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
+ + " * @see VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
+ + " * @see VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
+ + " * @see VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.*;\n"
+ + " ^^^^^^^^^\n"
+ + "The import test.copy is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "8. ERROR in test\\X.java (at line 13)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "9. ERROR in test\\X.java (at line 14)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "10. ERROR in test\\X.java (at line 15)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "11. ERROR in test\\X.java (at line 16)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "12. ERROR in test\\X.java (at line 17)\n"
+ + " * @see VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "13. ERROR in test\\X.java (at line 18)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "14. ERROR in test\\X.java (at line 19)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "15. ERROR in test\\X.java (at line 20)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "16. ERROR in test\\X.java (at line 21)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test151() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPackage;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package non visible class methods references (invalid arguments)\n"
+ + " * \n"
+ + " * @see VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 2)\n"
+ + " import test.copy.VisibilityPackage;\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "The imported type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test152() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other fully qualified name package non visible class methods references (non existent/visible arguments)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
+ + " * @see test.copy.VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
+ + " * @see test.copy.VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "8. ERROR in test\\X.java (at line 13)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "9. ERROR in test\\X.java (at line 14)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "10. ERROR in test\\X.java (at line 15)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "11. ERROR in test\\X.java (at line 16)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "12. ERROR in test\\X.java (at line 17)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "13. ERROR in test\\X.java (at line 18)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "14. ERROR in test\\X.java (at line 19)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n"
+ + "15. ERROR in test\\X.java (at line 20)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPackage is not visible\n"
+ + "----------\n");
+ }
+
+ public void test153() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other fully qualified name package non visible class methods references (invalid arguments)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
+ + " */ \n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test154() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test155() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-existent)\n"
+ + " * \n"
+ + " * @see VisibilityPublic#unknown() Invalid ref: non existent method\n"
+ + " * @see VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#unknown() Invalid ref: non existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type VisibilityPublic\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type VisibilityPublic.VpPublic\n"
+ + "----------\n");
+ }
+
+ public void test156() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
+ + " * @see VisibilityPublic#vm_public() Valid ref: visible method in visible class\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type VisibilityPublic is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 13)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 14)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type VisibilityPublic.VpPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test157() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
+ + " * @see VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type VisibilityPublic is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type VisibilityPublic is not applicable for the arguments (long, long, long, int)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type VisibilityPublic.VpPublic is not applicable for the arguments (boolean, String)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type VisibilityPublic.VpPublic is not applicable for the arguments (Object, float)\n"
+ + "----------\n");
+ }
+
+ public void test158() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-existent)\n"
+ + " * \n"
+ + " * @see VisibilityPublic#vm_private(\"boolean\") Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPublic#vm_public(long, \"int) Invalid ref: invalid argument definition\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private(double d()) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public(\") Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private(d()) Invalid ref: invalid argument declaration\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public(205) Invalid ref: invalid argument declaration\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.VisibilityPublic;\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "The import test.copy.VisibilityPublic is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see VisibilityPublic#vm_private(\"boolean\") Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see VisibilityPublic#vm_public(long, \"int) Invalid ref: invalid argument definition\n"
+ + " ^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_private(double d()) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see VisibilityPublic.VpPrivate#vm_public(\") Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_private(d()) Invalid ref: invalid argument declaration\n"
+ + " ^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see VisibilityPublic.VpPublic#vm_public(205) Invalid ref: invalid argument declaration\n"
+ + " ^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+
+ public void test159() {
+ this.runConformReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Valid other package visible class methods references \n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test160() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-existent)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#unknown() Invalid ref: non existent method\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPublic#unknown() Invalid ref: non existent method\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type VisibilityPublic\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
+ + " ^^^^^^^\n"
+ + "Annotation: The method unknown() is undefined for the type VisibilityPublic.VpPublic\n"
+ + "----------\n");
+ }
+
+ public void test161() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-visible)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
+ + " * @see test.copy.VisibilityPublic#vm_public() Valid ref: visible method in visible class\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type VisibilityPublic is not visible\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 12)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 13)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() from the type VisibilityPublic.VpPublic is not visible\n"
+ + "----------\n");
+ }
+
+ public void test162() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-applicable)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
+ + " * @see test.copy.VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @see test.copy.VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type VisibilityPublic is not applicable for the arguments (boolean)\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type VisibilityPublic is not applicable for the arguments (long, long, long, int)\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
+ + " ^^^^^^^^^^\n"
+ + "Annotation: The method vm_private() in the type VisibilityPublic.VpPublic is not applicable for the arguments (boolean, String)\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: The method vm_public() in the type VisibilityPublic.VpPublic is not applicable for the arguments (Object, float)\n"
+ + "----------\n");
+ }
+
+ public void test163() {
+ this.runNegativeReferenceTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "import test.copy.VisibilityPublic;\n"
+ + "public class X {\n"
+ + " /**\n"
+ + " * Invalid other package visible class methods references (non-existent)\n"
+ + " * \n"
+ + " * @see test.copy.VisibilityPublic#vm_private(\"\") Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPublic#vm_public(\"\"\") Invalid ref: invalid argument definition\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private(String d()) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public([) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private([]) Invalid ref: invalid argument declaration\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public(char[], int[],]) Invalid ref: invalid argument declaration\n"
+ + " */\n"
+ + " public void s_foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. WARNING in test\\X.java (at line 2)\n"
+ + " import test.copy.VisibilityPublic;\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "The import test.copy.VisibilityPublic is never used\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 7)\n"
+ + " * @see test.copy.VisibilityPublic#vm_private(\"\") Invalid ref: invalid argument declaration\n"
+ + " ^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 8)\n"
+ + " * @see test.copy.VisibilityPublic#vm_public(\"\"\") Invalid ref: invalid argument definition\n"
+ + " ^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 9)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_private(String d()) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "5. ERROR in test\\X.java (at line 10)\n"
+ + " * @see test.copy.VisibilityPublic.VpPrivate#vm_public([) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "6. ERROR in test\\X.java (at line 11)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_private([]) Invalid ref: invalid argument declaration\n"
+ + " ^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n"
+ + "7. ERROR in test\\X.java (at line 12)\n"
+ + " * @see test.copy.VisibilityPublic.VpPublic#vm_public(char[], int[],]) Invalid ref: invalid argument declaration\n"
+ + " ^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid parameters declaration\n"
+ + "----------\n");
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestMixed.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestMixed.java
new file mode 100644
index 0000000000..f246e535c5
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/AnnotationTestMixed.java
@@ -0,0 +1,766 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.core.tests.compiler.regression;
+
+import java.util.Map;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
+
+public class AnnotationTestMixed extends AnnotationTest {
+
+ public AnnotationTestMixed(String name) {
+ super(name);
+ }
+
+ public static Class testClass() {
+ return AnnotationTestMixed.class;
+ }
+
+ public static Test suite() {
+ if (false) {
+ TestSuite ts;
+ //some of the tests depend on the order of this suite.
+ ts = new TestSuite();
+ for (int i = 2; i <= 2; i++) {
+ String meth = "test";
+ if (i < 10) {
+ meth += "0";
+ }
+ if (i < 100) {
+ meth += "0";
+ }
+ meth += i;
+ ts.addTest(new AnnotationTestMixed(meth));
+ }
+ return new RegressionTestSetup(ts, COMPLIANCE_1_4);
+ }
+ return setupSuite(testClass());
+ }
+
+ protected Map getCompilerOptions() {
+ Map options = super.getCompilerOptions();
+ options.put(CompilerOptions.OPTION_ReportInvalidAnnotation, CompilerOptions.ERROR);
+ options.put(CompilerOptions.OPTION_ReportMissingAnnotation, CompilerOptions.ENABLED);
+ options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
+ options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
+ return options;
+ }
+
+ /*
+ * Test missing annotation
+ */
+ public void test001() {
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/** Class javadoc comment */\n"
+ + "public class X {\n"
+ + " /** Field javadoc comment */\n"
+ + " public int x;\n"
+ + "\n"
+ + " /** Constructor javadoc comment */\n"
+ + " public X() {\n"
+ + " }\n"
+ + " /** Method javadoc comment */\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test002() {
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "class X {\n"
+ + " int x;\n"
+ + "\n"
+ + " X() {}\n"
+ + "\n"
+ + " void foo() {}\n"
+ + "}\n" });
+ }
+
+ public void test003() {
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "class X {\n"
+ + " protected int x;\n"
+ + "\n"
+ + " protected X() {}\n"
+ + "\n"
+ + " protected void foo() {}\n"
+ + "}\n" });
+ }
+
+ public void test004() {
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "class X {\n"
+ + " private int x;\n"
+ + "\n"
+ + " private X() {}\n"
+ + "\n"
+ + " private void foo() {}\n"
+ + "}\n" });
+ }
+
+ public void test005() {
+ Map options = getCompilerOptions();
+ options.put(CompilerOptions.OPTION_ReportInvalidAnnotation, CompilerOptions.IGNORE);
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " public int x;\n"
+ + "\n"
+ + " public X() {}\n"
+ + "\n"
+ + " public void foo() {}\n"
+ + "}\n" },
+ null,
+ null,
+ true,
+ null,
+ options);
+ }
+
+ public void test010() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "public class X {\n"
+ + " /** Field javadoc comment */\n"
+ + " public int x;\n"
+ + "\n"
+ + " /** Constructor javadoc comment */\n"
+ + " public X() {\n"
+ + " }\n"
+ + " /** Method javadoc comment */\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 2)\n"
+ + " public class X {\n"
+ + " ^\n"
+ + "Annotation: API class or interface should have javadoc comment\n"
+ + "----------\n");
+ }
+
+ public void test011() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/** Class javadoc comment */\n"
+ + "public class X {\n"
+ + " public int x;\n"
+ + "\n"
+ + " /** Constructor javadoc comment */\n"
+ + " public X() {\n"
+ + " }\n"
+ + " /** Method javadoc comment */\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 4)\n"
+ + " public int x;\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc for public member in API class or interface\n"
+ + "----------\n");
+ }
+
+ public void test012() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/** Class javadoc comment */\n"
+ + "public class X {\n"
+ + " /** Field javadoc comment */\n"
+ + " public int x;\n"
+ + "\n"
+ + " public X() {\n"
+ + " }\n"
+ + " /** Method javadoc comment */\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " public X() {\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc for public member in API class or interface\n"
+ + "----------\n");
+ }
+
+ public void test013() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/** Class javadoc comment */\n"
+ + "public class X {\n"
+ + " /** Field javadoc comment */\n"
+ + " public int x;\n"
+ + "\n"
+ + " /** Constructor javadoc comment */\n"
+ + " public X() {\n"
+ + " }\n"
+ + " public void foo() {\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 10)\n"
+ + " public void foo() {\n"
+ + " ^^^\n"
+ + "Annotation: Missing javadoc for public member in API class or interface\n"
+ + "----------\n");
+ }
+
+ /*
+ * Test mixing javadoc comments
+ */
+ public void test021() {
+ this.runConformTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" });
+ }
+
+ public void test022() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Unexpected tag in class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " * @param x\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 6)\n"
+ + " * @param x\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test023() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Unexpected tag in field javadoc\n"
+ + " * @throws InvalidException\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 10)\n"
+ + " * @throws InvalidException\n"
+ + " ^^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n");
+ }
+
+ public void test024() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Wrong tags order in constructor javadoc\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @param str Valid param tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 19)\n"
+ + " * @param str Valid param tag\n"
+ + " ^^^^^\n"
+ + "Annotation: Unexpected javadoc entry\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 22)\n"
+ + " public X(String str) {\n"
+ + " ^^^\n"
+ + "Annotation: Missing javadoc entry for parameter str\n"
+ + "----------\n");
+ }
+
+ public void test025() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Wrong param tag in method javadoc\n"
+ + " * @param vector Invalid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 26)\n"
+ + " * @param vector Invalid param tag\n"
+ + " ^^^^^^\n"
+ + "Annotation: Parameter vector is not declared\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 33)\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " ^^^^\n"
+ + "Annotation: Missing javadoc entry for parameter list\n"
+ + "----------\n");
+ }
+
+ public void test026() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Invalid see tag in class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Invalid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>unexpected text\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Missing throws tag in constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) throws java.io.IOException {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Missing return tag in method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 5)\n"
+ + " * @see \"Test class X\n"
+ + " ^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 10)\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>unexpected text\n"
+ + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Invalid reference\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 22)\n"
+ + " public X(String str) throws java.io.IOException {\n"
+ + " ^^^^^^^^^^^^^^^^^^^\n"
+ + "Annotation: Missing javadoc entry for declared exception IOException\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 32)\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " ^^^^^^\n"
+ + "Annotation: Missing javadoc entry for return type\n"
+ + "----------\n");
+ }
+
+ /*
+ * Javadoc on invalid syntax
+ */
+ public void test030() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc on invalid declaration\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "protected class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 7)\n"
+ + " protected class X {\n"
+ + " ^\n"
+ + "Illegal modifier for the class X; only public, abstract & final are permitted\n"
+ + "----------\n");
+ }
+
+ public void test031() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc on invalid declaration\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 12)\n"
+ + " public int x\n"
+ + " ^\n"
+ + "Syntax error, insert \";\" to complete ClassBodyDeclarations\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 12)\n"
+ + " public int x\n"
+ + " ^\n"
+ + "Annotation: Missing javadoc for public member in API class or interface\n"
+ + "----------\n");
+ }
+
+ public void test032() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc on invalid declaration\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) \n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector list) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 22)\n"
+ + " public X(String str) \n"
+ + " ^\n"
+ + "Syntax error on token \")\", { expected after this token\n"
+ + "----------\n");
+ }
+
+ public void test033() {
+ this.runNegativeTest(
+ new String[] {
+ "test/X.java",
+ "package test;\n"
+ + "/**\n"
+ + " * Valid class javadoc\n"
+ + " * @author ffr\n"
+ + " * @see \"Test class X\"\n"
+ + " */\n"
+ + "public class X {\n"
+ + "/**\n"
+ + " * Valid field javadoc\n"
+ + " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
+ + " */\n"
+ + " public int x;\n"
+ + "\n"
+ + "/**\n"
+ + " * Valid constructor javadoc\n"
+ + " * @param str Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public X(String str) {\n"
+ + " }\n"
+ + "/**\n"
+ + " * Valid method javadoc on invalid declaration\n"
+ + " * @param list Valid param tag\n"
+ + " * @throws NullPointerException Valid throws tag\n"
+ + " * @exception IllegalArgumentException Valid throws tag\n"
+ + " * @return Valid return tag\n"
+ + " * @see X Valid see tag\n"
+ + " * @deprecated\n"
+ + " */\n"
+ + " public String foo(java.util.Vector ) {\n"
+ + " return \"\";\n"
+ + " }\n"
+ + "}\n" },
+ "----------\n"
+ + "1. ERROR in test\\X.java (at line 23)\n"
+ + " }\n"
+ + " ^\n"
+ + "Syntax error, insert \"}\" to complete ClassBody\n"
+ + "----------\n"
+ + "2. ERROR in test\\X.java (at line 26)\n"
+ + " * @param list Valid param tag\n"
+ + " ^^^^\n"
+ + "Annotation: Parameter list is not declared\n"
+ + "----------\n"
+ + "3. ERROR in test\\X.java (at line 33)\n"
+ + " public String foo(java.util.Vector ) {\n"
+ + " ^^^^^^\n"
+ + "Syntax error on token \"Vector\", VariableDeclaratorId expected after this token\n"
+ + "----------\n"
+ + "4. ERROR in test\\X.java (at line 36)\n"
+ + " }\n"
+ + " ^\n"
+ + "Syntax error on token \"}\", delete this token\n"
+ + "----------\n");
+ }
+}
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
index ec4c8d71e1..8d49a0021d 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java
@@ -28,7 +28,7 @@ public TestAll(String testName) {
}
public static Test suite() {
ArrayList standardTests = new ArrayList();
- standardTests.add(AnnotationTest.class);
+ standardTests.addAll(AnnotationTest.allTestClasses);
standardTests.add(ArrayTest.class);
standardTests.add(AssignmentTest.class);
standardTests.add(BatchCompilerTest.class);
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/TestVerifier.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/TestVerifier.java
index 2d65c6eaf7..db29d7f0de 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/TestVerifier.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/util/TestVerifier.java
@@ -376,15 +376,17 @@ private void launchAndRun(String className, String[] classpaths, String[] progra
private void launchVerifyTestsIfNeeded(String[] classpaths, String[] vmArguments) {
// determine if we can reuse the vm
if (this.vm != null && this.vm.isRunning() && this.classpathCache != null) {
- boolean sameClasspaths = true;
- for (int i = 0; i < classpaths.length; i++) {
- if (!this.classpathCache[i].equals(classpaths[i])) {
- sameClasspaths = false;
- break;
+ if (classpaths.length == classpathCache.length) {
+ boolean sameClasspaths = true;
+ for (int i = 0; i < classpaths.length; i++) {
+ if (!this.classpathCache[i].equals(classpaths[i])) {
+ sameClasspaths = false;
+ break;
+ }
+ }
+ if (sameClasspaths) {
+ return;
}
- }
- if (sameClasspaths) {
- return;
}
}

Back to the top