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 |
} |