View | Details | Raw Unified | Return to bug 101283 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_3.java (-1 / +209 lines)
Lines 38-44 Link Here
38
//		TESTS_NAMES = new String[] {
38
//		TESTS_NAMES = new String[] {
39
//			"testBug70892conform1", "testBug70892conform2"
39
//			"testBug70892conform1", "testBug70892conform2"
40
//		};
40
//		};
41
//		TESTS_NUMBERS = new int[] { 21 };
41
//		TESTS_NUMBERS = new int[] { 101283 };
42
//		TESTS_RANGE = new int[] { 21, 50 };
42
//		TESTS_RANGE = new int[] { 21, 50 };
43
	}
43
	}
44
	public static Test suite() {
44
	public static Test suite() {
Lines 2801-2804 Link Here
2801
			"----------\n"
2801
			"----------\n"
2802
		);
2802
		);
2803
	}
2803
	}
2804
2805
	/**
2806
	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
2807
	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
2808
	 */
2809
	public void testBug101283a() {
2810
		runNegativeTest(
2811
			new String[] {
2812
				"X.java",
2813
				"public class X<T, F> {\n" + 
2814
				"\n" + 
2815
				"	/**\n" + 
2816
				"	 * @param <T>  \n" + 
2817
				"	 * @param <F>\n" + 
2818
				"	 */\n" + 
2819
				"	static class Entry<L, R> {\n" + 
2820
				"		// empty\n" + 
2821
				"	}\n" + 
2822
				"}\n"
2823
			},
2824
			"----------\n" + 
2825
			"1. ERROR in X.java (at line 1)\n" + 
2826
			"	public class X<T, F> {\n" + 
2827
			"	               ^^^^\n" + 
2828
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2829
			"----------\n" + 
2830
			"2. ERROR in X.java (at line 4)\n" + 
2831
			"	* @param <T>  \n" + 
2832
			"	         ^^^\n" + 
2833
			"Javadoc: Invalid param tag name\n" + 
2834
			"----------\n" + 
2835
			"3. ERROR in X.java (at line 5)\n" + 
2836
			"	* @param <F>\n" + 
2837
			"	         ^^^\n" + 
2838
			"Javadoc: Invalid param tag name\n" + 
2839
			"----------\n" + 
2840
			"4. ERROR in X.java (at line 7)\n" + 
2841
			"	static class Entry<L, R> {\n" + 
2842
			"	                   ^^^^\n" + 
2843
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2844
			"----------\n"
2845
		);
2846
	}
2847
	public void testBug101283b() {
2848
		runNegativeTest(
2849
			new String[] {
2850
				"X.java",
2851
				"public class X<T, F> {\n" + 
2852
				"\n" + 
2853
				"	/**\n" + 
2854
				"	 * @see T Variable \n" + 
2855
				"	 * @see F Variable\n" + 
2856
				"	 */\n" + 
2857
				"	static class Entry<L, R> {\n" + 
2858
				"		// empty\n" + 
2859
				"	}\n" + 
2860
				"}\n"
2861
			},
2862
			"----------\n" + 
2863
			"1. ERROR in X.java (at line 1)\n" + 
2864
			"	public class X<T, F> {\n" + 
2865
			"	               ^^^^\n" + 
2866
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2867
			"----------\n" + 
2868
			"2. ERROR in X.java (at line 4)\n" + 
2869
			"	* @see T Variable \n" + 
2870
			"	       ^\n" + 
2871
			"Javadoc: T cannot be resolved to a type\n" + 
2872
			"----------\n" + 
2873
			"3. ERROR in X.java (at line 5)\n" + 
2874
			"	* @see F Variable\n" + 
2875
			"	       ^\n" + 
2876
			"Javadoc: F cannot be resolved to a type\n" + 
2877
			"----------\n" + 
2878
			"4. ERROR in X.java (at line 7)\n" + 
2879
			"	static class Entry<L, R> {\n" + 
2880
			"	                   ^^^^\n" + 
2881
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2882
			"----------\n"
2883
		);
2884
	}
2885
	public void testBug101283c() {
2886
		runNegativeTest(
2887
			new String[] {
2888
				"X.java",
2889
				"public class X<T, F> {\n" + 
2890
				"\n" + 
2891
				"	/**\n" + 
2892
				"	 * @param <T>  \n" + 
2893
				"	 * @param <F>\n" + 
2894
				"	 */\n" + 
2895
				"	class Entry<L, R> {\n" + 
2896
				"		// empty\n" + 
2897
				"	}\n" + 
2898
				"}\n"
2899
			},
2900
			"----------\n" + 
2901
			"1. ERROR in X.java (at line 1)\n" + 
2902
			"	public class X<T, F> {\n" + 
2903
			"	               ^^^^\n" + 
2904
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2905
			"----------\n" + 
2906
			"2. ERROR in X.java (at line 4)\n" + 
2907
			"	* @param <T>  \n" + 
2908
			"	         ^^^\n" + 
2909
			"Javadoc: Invalid param tag name\n" + 
2910
			"----------\n" + 
2911
			"3. ERROR in X.java (at line 5)\n" + 
2912
			"	* @param <F>\n" + 
2913
			"	         ^^^\n" + 
2914
			"Javadoc: Invalid param tag name\n" + 
2915
			"----------\n" + 
2916
			"4. ERROR in X.java (at line 7)\n" + 
2917
			"	class Entry<L, R> {\n" + 
2918
			"	            ^^^^\n" + 
2919
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2920
			"----------\n"
2921
		);
2922
	}
2923
	public void testBug101283d() {
2924
		runNegativeTest(
2925
			new String[] {
2926
				"X.java",
2927
				"public class X<T, F> {\n" + 
2928
				"\n" + 
2929
				"	/**\n" + 
2930
				"	 * @see T Variable \n" + 
2931
				"	 * @see F Variable\n" + 
2932
				"	 */\n" + 
2933
				"	class Entry<L, R> {\n" + 
2934
				"		// empty\n" + 
2935
				"	}\n" + 
2936
				"}\n"
2937
			},
2938
			"----------\n" + 
2939
			"1. ERROR in X.java (at line 1)\n" + 
2940
			"	public class X<T, F> {\n" + 
2941
			"	               ^^^^\n" + 
2942
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2943
			"----------\n" + 
2944
			"2. ERROR in X.java (at line 4)\n" + 
2945
			"	* @see T Variable \n" + 
2946
			"	       ^\n" + 
2947
			"Javadoc: T cannot be resolved to a type\n" + 
2948
			"----------\n" + 
2949
			"3. ERROR in X.java (at line 5)\n" + 
2950
			"	* @see F Variable\n" + 
2951
			"	       ^\n" + 
2952
			"Javadoc: F cannot be resolved to a type\n" + 
2953
			"----------\n" + 
2954
			"4. ERROR in X.java (at line 7)\n" + 
2955
			"	class Entry<L, R> {\n" + 
2956
			"	            ^^^^\n" + 
2957
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2958
			"----------\n"
2959
		);
2960
	}
2961
	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
2962
	public void testBug101283g() {
2963
		reportMissingJavadocTags = CompilerOptions.DISABLED;
2964
		runNegativeTest(
2965
			new String[] {
2966
				"test/X.java",
2967
				"package test;\n" + 
2968
				"public class X {\n" + 
2969
				"	int foo() { return 0; }\n" + 
2970
				"	class XX extends X2 {\n" + 
2971
				"		int bar() {\n" + 
2972
				"			return foo();\n" + 
2973
				"		}\n" + 
2974
				"	}\n" + 
2975
				"}\n" + 
2976
				"class X2 {\n" + 
2977
				"	int foo() {\n" + 
2978
				"		return 0;\n" + 
2979
				"	}\n" + 
2980
				"}\n",
2981
				"test/Y.java",
2982
				"package test;\n" + 
2983
				"public class Y {\n" + 
2984
				"	int foo;\n" + 
2985
				"	class YY extends Y2 {\n" + 
2986
				"	/**\n" + 
2987
				"	 *  @see #foo\n" + 
2988
				"	 */\n" + 
2989
				"		int bar() {\n" + 
2990
				"			return foo;\n" + 
2991
				"		}\n" + 
2992
				"	}\n" + 
2993
				"}\n" + 
2994
				"class Y2 {\n" + 
2995
				"	int foo;\n" + 
2996
				"}\n"
2997
			},
2998
			"----------\n" + 
2999
			"1. ERROR in test\\X.java (at line 6)\r\n" + 
3000
			"	return foo();\r\n" + 
3001
			"	       ^^^\n" + 
3002
			"The method foo is defined in an inherited type and an enclosing scope\n" + 
3003
			"----------\n" + 
3004
			"----------\n" + 
3005
			"1. ERROR in test\\Y.java (at line 9)\r\n" + 
3006
			"	return foo;\r\n" + 
3007
			"	       ^^^\n" + 
3008
			"The field foo is defined in an inherited type and an enclosing scope \n" + 
3009
			"----------\n"
3010
		);
3011
	}
2804
}
3012
}
(-)src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_4.java (-1 / +197 lines)
Lines 39-45 Link Here
39
//		TESTS_NAMES = new String[] {
39
//		TESTS_NAMES = new String[] {
40
//			"testBug70892conform1", "testBug70892conform2"
40
//			"testBug70892conform1", "testBug70892conform2"
41
//		};
41
//		};
42
//		TESTS_NUMBERS = new int[] { 83804 };
42
//		TESTS_NUMBERS = new int[] { 101283 };
43
//		TESTS_RANGE = new int[] { 21, 50 };
43
//		TESTS_RANGE = new int[] { 21, 50 };
44
	}
44
	}
45
	public static Test suite() {
45
	public static Test suite() {
Lines 2802-2805 Link Here
2802
			"----------\n"
2802
			"----------\n"
2803
		);
2803
		);
2804
	}
2804
	}
2805
2806
	/**
2807
	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
2808
	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
2809
	 */
2810
	public void testBug101283a() {
2811
		runNegativeTest(
2812
			new String[] {
2813
				"X.java",
2814
				"public class X<T, F> {\n" + 
2815
				"\n" + 
2816
				"	/**\n" + 
2817
				"	 * @param <T>  \n" + 
2818
				"	 * @param <F>\n" + 
2819
				"	 */\n" + 
2820
				"	static class Entry<L, R> {\n" + 
2821
				"		// empty\n" + 
2822
				"	}\n" + 
2823
				"}\n"
2824
			},
2825
			"----------\n" + 
2826
			"1. ERROR in X.java (at line 1)\n" + 
2827
			"	public class X<T, F> {\n" + 
2828
			"	               ^^^^\n" + 
2829
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2830
			"----------\n" + 
2831
			"2. ERROR in X.java (at line 4)\n" + 
2832
			"	* @param <T>  \n" + 
2833
			"	         ^^^\n" + 
2834
			"Javadoc: Invalid param tag name\n" + 
2835
			"----------\n" + 
2836
			"3. ERROR in X.java (at line 5)\n" + 
2837
			"	* @param <F>\n" + 
2838
			"	         ^^^\n" + 
2839
			"Javadoc: Invalid param tag name\n" + 
2840
			"----------\n" + 
2841
			"4. ERROR in X.java (at line 7)\n" + 
2842
			"	static class Entry<L, R> {\n" + 
2843
			"	                   ^^^^\n" + 
2844
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2845
			"----------\n"
2846
		);
2847
	}
2848
	public void testBug101283b() {
2849
		runNegativeTest(
2850
			new String[] {
2851
				"X.java",
2852
				"public class X<T, F> {\n" + 
2853
				"\n" + 
2854
				"	/**\n" + 
2855
				"	 * @see T Variable \n" + 
2856
				"	 * @see F Variable\n" + 
2857
				"	 */\n" + 
2858
				"	static class Entry<L, R> {\n" + 
2859
				"		// empty\n" + 
2860
				"	}\n" + 
2861
				"}\n"
2862
			},
2863
			"----------\n" + 
2864
			"1. ERROR in X.java (at line 1)\n" + 
2865
			"	public class X<T, F> {\n" + 
2866
			"	               ^^^^\n" + 
2867
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2868
			"----------\n" + 
2869
			"2. ERROR in X.java (at line 4)\n" + 
2870
			"	* @see T Variable \n" + 
2871
			"	       ^\n" + 
2872
			"Javadoc: T cannot be resolved to a type\n" + 
2873
			"----------\n" + 
2874
			"3. ERROR in X.java (at line 5)\n" + 
2875
			"	* @see F Variable\n" + 
2876
			"	       ^\n" + 
2877
			"Javadoc: F cannot be resolved to a type\n" + 
2878
			"----------\n" + 
2879
			"4. ERROR in X.java (at line 7)\n" + 
2880
			"	static class Entry<L, R> {\n" + 
2881
			"	                   ^^^^\n" + 
2882
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2883
			"----------\n"
2884
		);
2885
	}
2886
	public void testBug101283c() {
2887
		runNegativeTest(
2888
			new String[] {
2889
				"X.java",
2890
				"public class X<T, F> {\n" + 
2891
				"\n" + 
2892
				"	/**\n" + 
2893
				"	 * @param <T>  \n" + 
2894
				"	 * @param <F>\n" + 
2895
				"	 */\n" + 
2896
				"	class Entry<L, R> {\n" + 
2897
				"		// empty\n" + 
2898
				"	}\n" + 
2899
				"}\n"
2900
			},
2901
			"----------\n" + 
2902
			"1. ERROR in X.java (at line 1)\n" + 
2903
			"	public class X<T, F> {\n" + 
2904
			"	               ^^^^\n" + 
2905
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2906
			"----------\n" + 
2907
			"2. ERROR in X.java (at line 4)\n" + 
2908
			"	* @param <T>  \n" + 
2909
			"	         ^^^\n" + 
2910
			"Javadoc: Invalid param tag name\n" + 
2911
			"----------\n" + 
2912
			"3. ERROR in X.java (at line 5)\n" + 
2913
			"	* @param <F>\n" + 
2914
			"	         ^^^\n" + 
2915
			"Javadoc: Invalid param tag name\n" + 
2916
			"----------\n" + 
2917
			"4. ERROR in X.java (at line 7)\n" + 
2918
			"	class Entry<L, R> {\n" + 
2919
			"	            ^^^^\n" + 
2920
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2921
			"----------\n"
2922
		);
2923
	}
2924
	public void testBug101283d() {
2925
		runNegativeTest(
2926
			new String[] {
2927
				"X.java",
2928
				"public class X<T, F> {\n" + 
2929
				"\n" + 
2930
				"	/**\n" + 
2931
				"	 * @see T Variable \n" + 
2932
				"	 * @see F Variable\n" + 
2933
				"	 */\n" + 
2934
				"	class Entry<L, R> {\n" + 
2935
				"		// empty\n" + 
2936
				"	}\n" + 
2937
				"}\n"
2938
			},
2939
			"----------\n" + 
2940
			"1. ERROR in X.java (at line 1)\n" + 
2941
			"	public class X<T, F> {\n" + 
2942
			"	               ^^^^\n" + 
2943
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2944
			"----------\n" + 
2945
			"2. ERROR in X.java (at line 4)\n" + 
2946
			"	* @see T Variable \n" + 
2947
			"	       ^\n" + 
2948
			"Javadoc: T cannot be resolved to a type\n" + 
2949
			"----------\n" + 
2950
			"3. ERROR in X.java (at line 5)\n" + 
2951
			"	* @see F Variable\n" + 
2952
			"	       ^\n" + 
2953
			"Javadoc: F cannot be resolved to a type\n" + 
2954
			"----------\n" + 
2955
			"4. ERROR in X.java (at line 7)\n" + 
2956
			"	class Entry<L, R> {\n" + 
2957
			"	            ^^^^\n" + 
2958
			"Syntax error, type parameters are only available if source level is 5.0\n" + 
2959
			"----------\n"
2960
		);
2961
	}
2962
	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
2963
	public void testBug101283g() {
2964
		reportMissingJavadocTags = CompilerOptions.DISABLED;
2965
		runConformTest(
2966
			new String[] {
2967
				"test/X.java",
2968
				"package test;\n" + 
2969
				"public class X {\n" + 
2970
				"	int foo() { return 0; }\n" + 
2971
				"	class XX extends X2 {\n" + 
2972
				"		int bar() {\n" + 
2973
				"			return foo();\n" + 
2974
				"		}\n" + 
2975
				"	}\n" + 
2976
				"}\n" + 
2977
				"class X2 {\n" + 
2978
				"	int foo() {\n" + 
2979
				"		return 0;\n" + 
2980
				"	}\n" + 
2981
				"}\n",
2982
				"test/Y.java",
2983
				"package test;\n" + 
2984
				"public class Y {\n" + 
2985
				"	int foo;\n" + 
2986
				"	class YY extends Y2 {\n" + 
2987
				"	/**\n" + 
2988
				"	 *  @see #foo\n" + 
2989
				"	 */\n" + 
2990
				"		int bar() {\n" + 
2991
				"			return foo;\n" + 
2992
				"		}\n" + 
2993
				"	}\n" + 
2994
				"}\n" + 
2995
				"class Y2 {\n" + 
2996
				"	int foo;\n" + 
2997
				"}\n"
2998
			}
2999
		);
3000
	}
2805
}
3001
}
(-)src/org/eclipse/jdt/core/tests/compiler/regression/JavadocTest_1_5.java (-1 / +252 lines)
Lines 37-43 Link Here
37
	static {
37
	static {
38
//		TESTS_PREFIX = "testBug95521";
38
//		TESTS_PREFIX = "testBug95521";
39
//		TESTS_NAMES = new String[] { "testBug83127a" };
39
//		TESTS_NAMES = new String[] { "testBug83127a" };
40
//		TESTS_NUMBERS = new int[] { 83804 };
40
//		TESTS_NUMBERS = new int[] { 101283 };
41
//		TESTS_RANGE = new int[] { 23, -1 };
41
//		TESTS_RANGE = new int[] { 23, -1 };
42
	}
42
	}
43
	public static Test suite() {
43
	public static Test suite() {
Lines 1878-1881 Link Here
1878
			}
1878
			}
1879
		);
1879
		);
1880
	}
1880
	}
1881
1882
	/**
1883
	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
1884
	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
1885
	 */
1886
	public void testBug101283a() {
1887
		runNegativeTest(
1888
			new String[] {
1889
				"X.java",
1890
				"public class X<T, F> {\n" + 
1891
				"\n" + 
1892
				"	/**\n" + 
1893
				"	 * @param <T>  \n" + 
1894
				"	 * @param <F>\n" + 
1895
				"	 */\n" + 
1896
				"	static class Entry<L, R> {\n" + 
1897
				"		// empty\n" + 
1898
				"	}\n" + 
1899
				"}\n"
1900
			},
1901
			"----------\n" + 
1902
			"1. ERROR in X.java (at line 4)\n" + 
1903
			"	* @param <T>  \n" + 
1904
			"	          ^\n" + 
1905
			"Javadoc: Parameter T is not declared\n" + 
1906
			"----------\n" + 
1907
			"2. ERROR in X.java (at line 5)\n" + 
1908
			"	* @param <F>\n" + 
1909
			"	          ^\n" + 
1910
			"Javadoc: Parameter F is not declared\n" + 
1911
			"----------\n" + 
1912
			"3. ERROR in X.java (at line 7)\n" + 
1913
			"	static class Entry<L, R> {\n" + 
1914
			"	                   ^\n" + 
1915
			"Javadoc: Missing tag for parameter L\n" + 
1916
			"----------\n" + 
1917
			"4. ERROR in X.java (at line 7)\n" + 
1918
			"	static class Entry<L, R> {\n" + 
1919
			"	                      ^\n" + 
1920
			"Javadoc: Missing tag for parameter R\n" + 
1921
			"----------\n"
1922
		);
1923
	}
1924
	public void testBug101283b() {
1925
		runNegativeTest(
1926
			new String[] {
1927
				"X.java",
1928
				"public class X<T, F> {\n" + 
1929
				"\n" + 
1930
				"	/**\n" + 
1931
				"	 * @see T Variable \n" + 
1932
				"	 * @see F Variable\n" + 
1933
				"	 */\n" + 
1934
				"	static class Entry<L, R> {\n" + 
1935
				"		// empty\n" + 
1936
				"	}\n" + 
1937
				"}\n"
1938
			},
1939
			"----------\n" + 
1940
			"1. ERROR in X.java (at line 4)\n" + 
1941
			"	* @see T Variable \n" + 
1942
			"	       ^\n" + 
1943
			"Javadoc: Invalid reference\n" + 
1944
			"----------\n" + 
1945
			"2. ERROR in X.java (at line 5)\n" + 
1946
			"	* @see F Variable\n" + 
1947
			"	       ^\n" + 
1948
			"Javadoc: Invalid reference\n" + 
1949
			"----------\n" + 
1950
			"3. ERROR in X.java (at line 7)\n" + 
1951
			"	static class Entry<L, R> {\n" + 
1952
			"	                   ^\n" + 
1953
			"Javadoc: Missing tag for parameter L\n" + 
1954
			"----------\n" + 
1955
			"4. ERROR in X.java (at line 7)\n" + 
1956
			"	static class Entry<L, R> {\n" + 
1957
			"	                      ^\n" + 
1958
			"Javadoc: Missing tag for parameter R\n" + 
1959
			"----------\n"
1960
		);
1961
	}
1962
	public void testBug101283c() {
1963
		runNegativeTest(
1964
			new String[] {
1965
				"X.java",
1966
				"public class X<T, F> {\n" + 
1967
				"\n" + 
1968
				"	/**\n" + 
1969
				"	 * @param <T>  \n" + 
1970
				"	 * @param <F>\n" + 
1971
				"	 */\n" + 
1972
				"	class Entry<L, R> {\n" + 
1973
				"		// empty\n" + 
1974
				"	}\n" + 
1975
				"}\n"
1976
			},
1977
			"----------\n" + 
1978
			"1. ERROR in X.java (at line 4)\n" + 
1979
			"	* @param <T>  \n" + 
1980
			"	          ^\n" + 
1981
			"Javadoc: Parameter T is not declared\n" + 
1982
			"----------\n" + 
1983
			"2. ERROR in X.java (at line 5)\n" + 
1984
			"	* @param <F>\n" + 
1985
			"	          ^\n" + 
1986
			"Javadoc: Parameter F is not declared\n" + 
1987
			"----------\n" + 
1988
			"3. ERROR in X.java (at line 7)\n" + 
1989
			"	class Entry<L, R> {\n" + 
1990
			"	            ^\n" + 
1991
			"Javadoc: Missing tag for parameter L\n" + 
1992
			"----------\n" + 
1993
			"4. ERROR in X.java (at line 7)\n" + 
1994
			"	class Entry<L, R> {\n" + 
1995
			"	               ^\n" + 
1996
			"Javadoc: Missing tag for parameter R\n" + 
1997
			"----------\n"
1998
		);
1999
	}
2000
	public void testBug101283d() {
2001
		runNegativeTest(
2002
			new String[] {
2003
				"X.java",
2004
				"public class X<T, F> {\n" + 
2005
				"\n" + 
2006
				"	/**\n" + 
2007
				"	 * @see T Variable \n" + 
2008
				"	 * @see F Variable\n" + 
2009
				"	 */\n" + 
2010
				"	class Entry<L, R> {\n" + 
2011
				"		// empty\n" + 
2012
				"	}\n" + 
2013
				"}\n"
2014
			},
2015
			"----------\n" + 
2016
			"1. ERROR in X.java (at line 4)\n" + 
2017
			"	* @see T Variable \n" + 
2018
			"	       ^\n" + 
2019
			"Javadoc: Invalid reference\n" + 
2020
			"----------\n" + 
2021
			"2. ERROR in X.java (at line 5)\n" + 
2022
			"	* @see F Variable\n" + 
2023
			"	       ^\n" + 
2024
			"Javadoc: Invalid reference\n" + 
2025
			"----------\n" + 
2026
			"3. ERROR in X.java (at line 7)\n" + 
2027
			"	class Entry<L, R> {\n" + 
2028
			"	            ^\n" + 
2029
			"Javadoc: Missing tag for parameter L\n" + 
2030
			"----------\n" + 
2031
			"4. ERROR in X.java (at line 7)\n" + 
2032
			"	class Entry<L, R> {\n" + 
2033
			"	               ^\n" + 
2034
			"Javadoc: Missing tag for parameter R\n" + 
2035
			"----------\n"
2036
		);
2037
	}
2038
	// Verify duplicate test case: bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=102735
2039
	public void testBug101283e() {
2040
		reportMissingJavadocTags = CompilerOptions.DISABLED;
2041
		runNegativeTest(
2042
			new String[] {
2043
				"Test.java",
2044
				"public interface Test<V, R extends Component<?>, C extends\n" + 
2045
				"Test<V, R, C>> extends Control<SelectModel<V>, C>\n" + 
2046
				"{\n" + 
2047
				"	public interface ValueRepresentationStrategy<VV, RR extends Component<?>> extends ComponentFactory<VV, RR>\n" + 
2048
				"	{\n" + 
2049
				"		/**This value must be equal to the ID of the component returned by the {@link\n" + 
2050
				"		ComponentFactory#createComponent(V)} method.*/\n" + 
2051
				"		public String getID(final VV value);\n" + 
2052
				"	}\n" + 
2053
				"}\n" + 
2054
				"class Component<T> {}\n" + 
2055
				"interface Control<U, V> {}\n" + 
2056
				"class SelectModel<V> {}\n" + 
2057
				"interface ComponentFactory <U, V> {\n" +
2058
				"	public void createComponent(V v);\n" +
2059
				"}\n"
2060
			},
2061
			"----------\n" + 
2062
			"1. ERROR in Test.java (at line 7)\n" + 
2063
			"	ComponentFactory#createComponent(V)} method.*/\n" + 
2064
			"	                                 ^\n" + 
2065
			"Javadoc: Cannot make a static reference to the non-static type variable V\n" + 
2066
			"----------\n"
2067
		);
2068
	}
2069
	public void testBug101283f() {
2070
		reportMissingJavadocTags = CompilerOptions.DISABLED;
2071
		runConformTest(
2072
			new String[] {
2073
				"Test.java",
2074
				"public interface Test<V, R extends Component<?>, C extends\n" + 
2075
				"Test<V, R, C>> extends Control<SelectModel<V>, C>\n" + 
2076
				"{\n" + 
2077
				"	public interface ValueRepresentationStrategy<VV, RR extends Component<?>> extends ComponentFactory<VV, RR>\n" + 
2078
				"	{\n" + 
2079
				"		/**This value must be equal to the ID of the component returned by the {@link\n" + 
2080
				"		ComponentFactory#createComponent(Object)} method.*/\n" + 
2081
				"		public String getID(final VV value);\n" + 
2082
				"	}\n" + 
2083
				"}\n" + 
2084
				"class Component<T> {}\n" + 
2085
				"interface Control<U, V> {}\n" + 
2086
				"class SelectModel<V> {}\n" + 
2087
				"interface ComponentFactory <U, V> {\n" +
2088
				"	public void createComponent(V v);\n" +
2089
				"}\n"
2090
			}
2091
		);
2092
	}
2093
	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
2094
	public void testBug101283g() {
2095
		reportMissingJavadocTags = CompilerOptions.DISABLED;
2096
		runConformTest(
2097
			new String[] {
2098
				"test/X.java",
2099
				"package test;\n" + 
2100
				"public class X {\n" + 
2101
				"	int foo() { return 0; }\n" + 
2102
				"	class XX extends X2 {\n" + 
2103
				"		int bar() {\n" + 
2104
				"			return foo();\n" + 
2105
				"		}\n" + 
2106
				"	}\n" + 
2107
				"}\n" + 
2108
				"class X2 {\n" + 
2109
				"	int foo() {\n" + 
2110
				"		return 0;\n" + 
2111
				"	}\n" + 
2112
				"}\n",
2113
				"test/Y.java",
2114
				"package test;\n" + 
2115
				"public class Y {\n" + 
2116
				"	int foo;\n" + 
2117
				"	class YY extends Y2 {\n" + 
2118
				"	/**\n" + 
2119
				"	 *  @see #foo\n" + 
2120
				"	 */\n" + 
2121
				"		int bar() {\n" + 
2122
				"			return foo;\n" + 
2123
				"		}\n" + 
2124
				"	}\n" + 
2125
				"}\n" + 
2126
				"class Y2 {\n" + 
2127
				"	int foo;\n" + 
2128
				"}\n"
2129
			}
2130
		);
2131
	}
1881
}
2132
}

Return to bug 101283