1 /* 2 * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @bug 8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332 8182765 27 * 8187288 28 * @summary Make sure that type annotations are displayed correctly 29 * @author Bhavesh Patel 30 * @library ../../lib 31 * @modules jdk.javadoc/jdk.javadoc.internal.tool 32 * @build javadoc.tester.* 33 * @run main TestTypeAnnotations 34 */ 35 36 import javadoc.tester.JavadocTester; 37 38 public class TestTypeAnnotations extends JavadocTester { 39 40 public static void main(String... args) throws Exception { 41 TestTypeAnnotations tester = new TestTypeAnnotations(); 42 tester.runTests(); 43 } 44 45 @Test 46 public void test() { 47 javadoc("-d", "out", 48 "-sourcepath", testSrc, 49 "-private", 50 "typeannos"); 51 checkExit(Exit.OK); 52 53 // Test for type annotations on Class Extends (ClassExtends.java). 54 checkOutput("typeannos/MyClass.html", true, 55 "extends <a href=\"ClassExtA.html\" title=\"annotation " 56 + "in typeannos\">@ClassExtA</a> <a href=\"ParameterizedClass.html\" " 57 + "title=\"class in typeannos\">ParameterizedClass</a><<a href=\"" 58 + "ClassExtB.html\" title=\"annotation in typeannos\">" 59 + "@ClassExtB</a> java.lang.String>", 60 61 "implements <a href=\"ClassExtB.html\" title=\"" 62 + "annotation in typeannos\">@ClassExtB</a> java.lang.CharSequence, " 63 + "<a href=\"ClassExtA.html\" title=\"annotation in " 64 + "typeannos\">@ClassExtA</a> <a href=\"ParameterizedInterface.html\" " 65 + "title=\"interface in typeannos\">ParameterizedInterface</a><" 66 + "<a href=\"ClassExtB.html\" title=\"annotation in " 67 + "typeannos\">@ClassExtB</a> java.lang.String></pre>"); 68 69 checkOutput("typeannos/MyInterface.html", true, 70 "extends <a href=\"ClassExtA.html\" title=\"annotation " 71 + "in typeannos\">@ClassExtA</a> <a href=\"" 72 + "ParameterizedInterface.html\" title=\"interface in typeannos\">" 73 + "ParameterizedInterface</a><<a href=\"ClassExtA.html\" " 74 + "title=\"annotation in typeannos\">@ClassExtA</a> java.lang.String>, " 75 + "<a href=\"ClassExtB.html\" title=\"annotation in " 76 + "typeannos\">@ClassExtB</a> java.lang.CharSequence</pre>"); 77 78 // Test for type annotations on Class Parameters (ClassParameters.java). 79 checkOutput("typeannos/ExtendsBound.html", true, 80 "class <span class=\"typeNameLabel\">ExtendsBound<K extends <a " 81 + "href=\"ClassParamA.html\" title=\"annotation in " 82 + "typeannos\">@ClassParamA</a> java.lang.String></span>"); 83 84 checkOutput("typeannos/ExtendsGeneric.html", true, 85 "<pre>class <span class=\"typeNameLabel\">ExtendsGeneric<K extends " 86 + "<a href=\"ClassParamA.html\" title=\"annotation in " 87 + "typeannos\">@ClassParamA</a> <a href=\"Unannotated.html\" " 88 + "title=\"class in typeannos\">Unannotated</a><<a href=\"" 89 + "ClassParamB.html\" title=\"annotation in typeannos\">" 90 + "@ClassParamB</a> java.lang.String>></span>"); 91 92 checkOutput("typeannos/TwoBounds.html", true, 93 "<pre>class <span class=\"typeNameLabel\">TwoBounds<K extends <a href=\"" 94 + "ClassParamA.html\" title=\"annotation in typeannos\">" 95 + "@ClassParamA</a> java.lang.String,V extends <a href=\"" 96 + "ClassParamB.html\" title=\"annotation in typeannos\">@ClassParamB" 97 + "</a> java.lang.String></span>"); 98 99 checkOutput("typeannos/Complex1.html", true, 100 "class <span class=\"typeNameLabel\">Complex1<K extends <a href=\"" 101 + "ClassParamA.html\" title=\"annotation in typeannos\">" 102 + "@ClassParamA</a> java.lang.String & java.lang.Runnable></span>"); 103 104 checkOutput("typeannos/Complex2.html", true, 105 "class <span class=\"typeNameLabel\">Complex2<K extends java.lang." 106 + "String & <a href=\"ClassParamB.html\" title=\"" 107 + "annotation in typeannos\">@ClassParamB</a> java.lang.Runnable></span>"); 108 109 checkOutput("typeannos/ComplexBoth.html", true, 110 "class <span class=\"typeNameLabel\">ComplexBoth<K extends <a href=\"" 111 + "ClassParamA.html\" title=\"annotation in typeannos\"" 112 + ">@ClassParamA</a> java.lang.String & <a href=\"" 113 + "ClassParamA.html\" title=\"annotation in typeannos\">@ClassParamA" 114 + "</a> java.lang.Runnable></span>"); 115 116 // Test for type annotations on fields (Fields.java). 117 checkOutput("typeannos/DefaultScope.html", true, 118 "<pre><a href=\"Parameterized.html\" title=\"class in " 119 + "typeannos\">Parameterized</a><<a href=\"FldA.html\" " 120 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,<a " 121 + "href=\"FldB.html\" title=\"annotation in typeannos\">" 122 + "@FldB</a> java.lang.String> bothTypeArgs</pre>", 123 124 "<pre><a href=\"FldA.html\" title=\"annotation in " 125 + "typeannos\">@FldA</a> java.lang.String <a href=\"" 126 + "FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] " 127 + "array1Deep</pre>", 128 129 "<pre>java.lang.String <a href=\"FldB.html\" " 130 + "title=\"annotation in typeannos\">@FldB</a> [][] array2SecondOld</pre>", 131 132 // When JDK-8068737, we should change the order 133 "<pre><a href=\"FldD.html\" title=\"annotation in typeannos\">" 134 + "@FldD</a> java.lang.String " 135 + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> " 136 + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] " 137 + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> " 138 + "<a href=\"FldA.html\" title=\"annotation in typeannos\">@FldA</a> [] " 139 + "array2Deep</pre>"); 140 141 checkOutput("typeannos/ModifiedScoped.html", true, 142 "<pre>public final <a href=\"Parameterized.html\" " 143 + "title=\"class in typeannos\">Parameterized</a><<a href=\"" 144 + "FldA.html\" title=\"annotation in typeannos\">@FldA</a> " 145 + "<a href=\"Parameterized.html\" title=\"class in " 146 + "typeannos\">Parameterized</a><<a href=\"FldA.html\" " 147 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,<a " 148 + "href=\"FldB.html\" title=\"annotation in typeannos\">" 149 + "@FldB</a> java.lang.String>,<a href=\"FldB.html\" " 150 + "title=\"annotation in typeannos\">@FldB</a> java.lang.String> " 151 + "nestedParameterized</pre>", 152 153 "<pre>public final <a href=\"FldA.html\" " 154 + "title=\"annotation in typeannos\">@FldA</a> java.lang.String[][] " 155 + "array2</pre>"); 156 157 // Test for type annotations on method return types (MethodReturnType.java). 158 checkOutput("typeannos/MtdDefaultScope.html", true, 159 "<pre>public <T> <a href=\"MRtnA.html\" " 160 + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String" 161 + " method()</pre>", 162 163 // When JDK-8068737 is fixed, we should change the order 164 "<pre><a href=\"MRtnA.html\" title=\"annotation in typeannos\">" 165 + "@MRtnA</a> java.lang.String " 166 + "<a href=\"MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> [] " 167 + "<a href=\"MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> []" 168 + " array2Deep()</pre>", 169 170 "<pre><a href=\"MRtnA.html\" title=\"annotation in " 171 + "typeannos\">@MRtnA</a> java.lang.String[][] array2()</pre>"); 172 173 checkOutput("typeannos/MtdModifiedScoped.html", true, 174 "<pre>public final <a href=\"MtdParameterized.html\" " 175 + "title=\"class in typeannos\">MtdParameterized</a><<a href=\"" 176 + "MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> " 177 + "<a href=\"MtdParameterized.html\" title=\"class in " 178 + "typeannos\">MtdParameterized</a><<a href=\"MRtnA." 179 + "html\" title=\"annotation in typeannos\">@MRtnA</a> java.lang." 180 + "String,<a href=\"MRtnB.html\" title=\"annotation in " 181 + "typeannos\">@MRtnB</a> java.lang.String>,<a href=\"" 182 + "MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> java." 183 + "lang.String> nestedMtdParameterized()</pre>"); 184 185 // Test for type annotations on method type parameters (MethodTypeParameters.java). 186 checkOutput("typeannos/UnscopedUnmodified.html", true, 187 "<pre><K extends <a href=\"MTyParamA.html\" title=\"" 188 + "annotation in typeannos\">@MTyParamA</a> java.lang.String>" 189 + " void methodExtends()</pre>", 190 191 "<pre><K extends <a href=\"MTyParamA.html\" title=\"" 192 + "annotation in typeannos\">@MTyParamA</a> <a href=\"" 193 + "MtdTyParameterized.html\" title=\"class in typeannos\">" 194 + "MtdTyParameterized</a><<a href=\"MTyParamB.html\" " 195 + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String" 196 + ">> void nestedExtends()</pre>"); 197 198 checkOutput("typeannos/PublicModifiedMethods.html", true, 199 "<pre>public final <K extends <a href=\"" 200 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> " 201 + "java.lang.String> void methodExtends()</pre>", 202 203 "<pre>public final <K extends <a href=\"" 204 + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> " 205 + "java.lang.String,V extends <a href=\"MTyParamA.html\" " 206 + "title=\"annotation in typeannos\">@MTyParamA</a> <a href=\"" 207 + "MtdTyParameterized.html\" title=\"class in typeannos\">" 208 + "MtdTyParameterized</a><<a href=\"MTyParamB.html\" " 209 + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String" 210 + ">> \nvoid dual()</pre>"); 211 212 // Test for type annotations on parameters (Parameters.java). 213 checkOutput("typeannos/Parameters.html", true, 214 "<pre>void unannotated(<a href=\"" 215 + "ParaParameterized.html\" title=\"class in typeannos\">" 216 + "ParaParameterized</a><java.lang.String,java.lang.String>" 217 + " a)</pre>", 218 219 "<pre>void nestedParaParameterized(<a href=\"" 220 + "ParaParameterized.html\" title=\"class in typeannos\">" 221 + "ParaParameterized</a><<a href=\"ParamA.html\" " 222 + "title=\"annotation in typeannos\">@ParamA</a> <a href=\"" 223 + "ParaParameterized.html\" title=\"class in typeannos\">" 224 + "ParaParameterized</a><<a href=\"ParamA.html\" " 225 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String," 226 + "<a href=\"ParamB.html\" title=\"annotation in " 227 + "typeannos\">@ParamB</a> java.lang.String>,<a href=\"" 228 + "ParamB.html\" title=\"annotation in typeannos\">@ParamB" 229 + "</a> java.lang.String> a)</pre>", 230 231 // When JDK-8068737 is fixed, we should change the order 232 "<pre>void array2Deep(<a href=\"ParamA.html\" " 233 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String " 234 + "<a href=\"ParamB.html\" title=\"annotation in typeannos\">" 235 + "@ParamB</a> [] " 236 + "<a href=\"ParamA.html\" title=\"annotation in typeannos\">" 237 + "@ParamA</a> []" 238 + " a)</pre>"); 239 240 // Test for type annotations on throws (Throws.java). 241 checkOutput("typeannos/ThrDefaultUnmodified.html", true, 242 "<pre>void oneException()\n" 243 + " throws <a href=\"ThrA.html\" title=\"" 244 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>", 245 246 "<pre>void twoExceptions()\n" 247 + " throws <a href=\"ThrA.html\" title=\"" 248 + "annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n" 249 + " <a href=\"ThrA.html\" title=\"" 250 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"); 251 252 checkOutput("typeannos/ThrPublicModified.html", true, 253 "<pre>public final void oneException" 254 + "(java.lang.String a)\n throws <a href=\"ThrA.html\" " 255 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>", 256 257 "<pre>public final void twoExceptions" 258 + "(java.lang.String a)\n throws <a href=\"ThrA.html\" " 259 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n" 260 + " <a href=\"ThrA.html\" " 261 + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"); 262 263 checkOutput("typeannos/ThrWithValue.html", true, 264 "<pre>void oneException()\n" 265 + " throws <a href=\"ThrB.html\" title=\"" 266 + "annotation in typeannos\">@ThrB</a>(" 267 + "\"m\") java.lang.Exception</pre>", 268 269 "<pre>void twoExceptions()\n" 270 + " throws <a href=\"ThrB.html\" title=\"" 271 + "annotation in typeannos\">@ThrB</a>(" 272 + "\"m\") java.lang.RuntimeException,\n" 273 + " <a href=\"ThrA.html\" title=\"" 274 + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>"); 275 276 // Test for type annotations on type parameters (TypeParameters.java). 277 checkOutput("typeannos/TestMethods.html", true, 278 "<pre><K,<a href=\"TyParaA.html\" title=" 279 + "\"annotation in typeannos\">@TyParaA</a> V extends <a href=\"TyParaA.html\" " 280 + "title=\"annotation in typeannos\">@TyParaA</a> " 281 + "java.lang.String> void secondAnnotated()</pre>" 282 ); 283 284 // Test for type annotations on wildcard type (Wildcards.java). 285 checkOutput("typeannos/BoundTest.html", true, 286 "<pre>void wcExtends(<a href=\"MyList.html\" " 287 + "title=\"class in typeannos\">MyList</a><? extends <a href=\"" 288 + "WldA.html\" title=\"annotation in typeannos\">@WldA" 289 + "</a> java.lang.String> l)</pre>", 290 291 "<pre><a href=\"MyList.html\" title=\"class in " 292 + "typeannos\">MyList</a><? super <a href=\"WldA.html\" " 293 + "title=\"annotation in typeannos\">@WldA</a> java.lang.String>" 294 + " returnWcSuper()</pre>"); 295 296 checkOutput("typeannos/BoundWithValue.html", true, 297 "<pre>void wcSuper(<a href=\"MyList.html\"" 298 + " title=\"class in typeannos\">MyList</a><? super <a href=\"" 299 + "WldB.html\" title=\"annotation in typeannos\">@WldB</a>(" 300 + "\"m\") java.lang." 301 + "String> l)</pre>", 302 303 "<pre><a href=\"MyList.html\" title=\"class in " 304 + "typeannos\">MyList</a><? extends <a href=\"WldB." 305 + "html\" title=\"annotation in typeannos\">@WldB</a>(" 306 + "\"m\") java.lang.String" 307 + "> returnWcExtends()</pre>"); 308 309 // Test for receiver annotations (Receivers.java). 310 checkOutput("typeannos/DefaultUnmodified.html", true, 311 "<pre>void withException(<a href=\"RcvrA.html\" " 312 + "title=\"annotation in typeannos\">@RcvrA</a> " 313 + "DefaultUnmodified this)\n" 314 + " throws java." 315 + "lang.Exception</pre>", 316 317 "<pre>java.lang.String nonVoid(<a href=\"RcvrA." 318 + "html\" title=\"annotation in typeannos\">@RcvrA</a> <a href=\"" 319 + "RcvrB.html\" title=\"annotation in typeannos\">@RcvrB" 320 + "</a>(\"m\")" 321 + " DefaultUnmodified this)</pre>", 322 323 "<pre><T extends java.lang.Runnable> void accept(" 324 + "<a href=\"RcvrA.html\" title=\"annotation in " 325 + "typeannos\">@RcvrA</a> DefaultUnmodified this,\n" 326 + " T r)\n" 327 + " throws java.lang.Exception</pre>"); 328 329 checkOutput("typeannos/PublicModified.html", true, 330 "<pre>public final java.lang.String nonVoid" 331 + "(<a href=\"RcvrA.html\" title=\"annotation in typeannos\">" 332 + "@RcvrA</a> PublicModified this)</pre>", 333 334 "<pre>public final <T extends java.lang.Runnable> " 335 + "void accept(<a href=\"RcvrA.html\" title=\"" 336 + "annotation in typeannos\">@RcvrA</a> PublicModified this,\n" 337 + " T r)\n" 338 + " throws java.lang.Exception</pre>"); 339 340 checkOutput("typeannos/WithValue.html", true, 341 "<pre><T extends java.lang.Runnable> void accept(" 342 + "<a href=\"RcvrB.html\" title=\"annotation in " 343 + "typeannos\">@RcvrB</a>(" 344 + "\"m\") WithValue this,\n" 345 + " T r)\n" 346 + " throws java.lang.Exception</pre>"); 347 348 checkOutput("typeannos/WithFinal.html", true, 349 "<pre>java.lang.String nonVoid(<a href=\"RcvrB.html\" " 350 + "title=\"annotation in typeannos\">@RcvrB</a>(\"m\") " 351 + "<a href=\"WithFinal.html\" title=\"class in typeannos\">" 352 + "WithFinal</a> afield)</pre>"); 353 354 checkOutput("typeannos/WithBody.html", true, 355 "<pre>void field(<a href=\"RcvrA.html\" title=\"" 356 + "annotation in typeannos\">@RcvrA</a> WithBody this)</pre>"); 357 358 checkOutput("typeannos/Generic2.html", true, 359 "<pre>void test2(<a href=\"RcvrA.html\" title=\"" 360 + "annotation in typeannos\">@RcvrA</a> Generic2<X> this)</pre>"); 361 362 363 // Test for repeated type annotations (RepeatedAnnotations.java). 364 checkOutput("typeannos/RepeatingAtClassLevel.html", true, 365 "<pre><a href=\"RepTypeA.html\" title=\"annotation in " 366 + "typeannos\">@RepTypeA</a> <a href=\"RepTypeA.html\" " 367 + "title=\"annotation in typeannos\">@RepTypeA</a>\n<a href=" 368 + "\"RepTypeB.html\" title=\"annotation in typeannos\">" 369 + "@RepTypeB</a> <a href=\"RepTypeB.html\" title=" 370 + "\"annotation in typeannos\">@RepTypeB</a>\nclass <span class=" 371 + "\"typeNameLabel\">RepeatingAtClassLevel</span>\nextends " 372 + "java.lang.Object</pre>"); 373 374 // @ignore 8146008 375 // checkOutput("typeannos/RepeatingAtClassLevel2.html", true, 376 // "<pre><a href=\"RepTypeUseA.html\" title=\"annotation " 377 // + "in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html" 378 // + "\" title=\"annotation in typeannos\">@RepTypeUseA</a>\n<a href=" 379 // + "\"RepTypeUseB.html\" title=\"annotation in typeannos" 380 // + "\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 381 // + "title=\"annotation in typeannos\">@RepTypeUseB</a>\nclass <span " 382 // + "class=\"typeNameLabel\">RepeatingAtClassLevel2</span>\nextends " 383 // + "java.lang.Object</pre>"); 384 // 385 // checkOutput("typeannos/RepeatingAtClassLevel2.html", true, 386 // "<pre><a href=\"RepAllContextsA.html\" title=\"annotation" 387 // + " in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html" 388 // + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href=" 389 // + "\"RepAllContextsB.html\" title=\"annotation in typeannos" 390 // + "\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html" 391 // + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n" 392 // + "class <span class=\"typeNameLabel\">RepeatingAtClassLevel3</span>\n" 393 // + "extends java.lang.Object</pre>"); 394 395 checkOutput("typeannos/RepeatingOnConstructor.html", true, 396 "<pre><a href=\"RepConstructorA.html\" title=\"annotation " 397 + "in typeannos\">@RepConstructorA</a> <a href=\"RepConstructorA.html" 398 + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href=" 399 + "\"RepConstructorB.html\" title=\"annotation in typeannos" 400 + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html" 401 + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n" 402 + "RepeatingOnConstructor()</pre>", 403 404 "<pre><a href=\"RepConstructorA.html\" title=\"annotation in typeannos" 405 + "\">@RepConstructorA</a> <a href=\"RepConstructorA.html" 406 + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href=" 407 + "\"RepConstructorB.html\" title=\"annotation in typeannos" 408 + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html" 409 + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n" 410 + "RepeatingOnConstructor(int i,\n int j)</pre>", 411 412 "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos" 413 + "\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html" 414 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n" 415 + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos" 416 + "\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html" 417 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n" 418 + "RepeatingOnConstructor(int i,\n int j,\n" 419 + " int k)</pre>", 420 421 "<pre>RepeatingOnConstructor(<a href=\"RepParameterA.html" 422 + "\" title=\"annotation in typeannos\">@RepParameterA</a> <a href=" 423 + "\"RepParameterA.html\" title=\"annotation in typeannos" 424 + "\">@RepParameterA</a> <a href=\"RepParameterB.html" 425 + "\" title=\"annotation in typeannos\">@RepParameterB</a> " 426 + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos" 427 + "\">@RepParameterB</a>\n java.lang.String parameter,\n" 428 + " <a href=\"RepParameterA.html\" " 429 + "title=\"annotation in typeannos\">@RepParameterA</a> <a href=" 430 + "\"RepParameterA.html\" title=\"annotation in typeannos\">" 431 + "@RepParameterA</a> <a href=\"RepParameterB.html\" " 432 + "title=\"annotation in typeannos\">@RepParameterB</a> <a href=" 433 + "\"RepParameterB.html\" title=\"annotation in typeannos\">" 434 + "@RepParameterB</a>\n java.lang.String " 435 + "<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 436 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" " 437 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 438 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">@RepTypeUseB</a> " 439 + "<a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 440 + "@RepTypeUseB</a> ... vararg)</pre>" 441 ); 442 443 checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true, 444 "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E(java.lang.String," 445 + "java.lang.String...)\">Inner</a></span>(java.lang.String parameter,\n" 446 + " java.lang.String <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 447 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 448 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 449 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 450 + "@RepTypeUseB</a> ... vararg)</code>", 451 "Inner(<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 452 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 453 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html" 454 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=" 455 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 456 + "@RepTypeUseB</a> RepeatingOnConstructor this,\n <a href=" 457 + "\"RepParameterA.html\" title=\"annotation in typeannos\">" 458 + "@RepParameterA</a> <a href=\"RepParameterA.html\" title=" 459 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterB.html" 460 + "\" title=\"annotation in typeannos\">@RepParameterB</a> <a href=" 461 + "\"RepParameterB.html\" title=\"annotation in typeannos\">" 462 + "@RepParameterB</a>\n java.lang.String parameter,\n" 463 + " <a href=\"RepParameterA.html\" title=\"annotation in typeannos\">" 464 + "@RepParameterA</a> <a href=\"RepParameterA.html\" title=" 465 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterB.html" 466 + "\" title=\"annotation in typeannos\">@RepParameterB</a> <a href=" 467 + "\"RepParameterB.html\" title=\"annotation in typeannos\">" 468 + "@RepParameterB</a>\n java.lang.String <a href=\"RepTypeUseA.html" 469 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 470 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 471 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 472 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html" 473 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> ... vararg)"); 474 475 checkOutput("typeannos/RepeatingOnField.html", true, 476 "<code>(package private) java.lang.Integer</code></td>\n<th class=\"colSecond\" scope=\"row\">" 477 + "<code><span class=\"memberNameLink\"><a href=\"#i1" 478 + "\">i1</a></span></code>", 479 480 "<code>(package private) <a href=\"RepTypeUseA.html\" " 481 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"" 482 + "RepTypeUseA.html\" title=\"annotation in typeannos\">" 483 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 484 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html" 485 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer</code></td>\n" 486 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=" 487 + "\"#i2\">i2</a></span></code>", 488 489 "<code>(package private) <a href=\"RepTypeUseA.html\" title=" 490 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" " 491 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 492 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 493 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 494 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer</code>" 495 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">" 496 + "<a href=\"#i3\">i3</a></span></code>", 497 498 "<code>(package private) <a href=\"RepAllContextsA.html\" title=\"" 499 + "annotation in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html" 500 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=" 501 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 502 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" title=" 503 + "\"annotation in typeannos\">@RepAllContextsB</a> java.lang.Integer</code>" 504 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">" 505 + "<a href=\"#i4\">i4</a></span></code>", 506 507 "<code>(package private) java.lang.String <a href=\"RepTypeUseA.html" 508 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 509 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 510 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 511 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html" 512 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> [] <a href=" 513 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 514 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 515 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html" 516 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=" 517 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 518 + "@RepTypeUseB</a> []</code></td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=" 519 + "\"memberNameLink\"><a href=\"#sa" 520 + "\">sa</a></span></code>", 521 522 "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">" 523 + "@RepFieldA</a> <a href=\"RepFieldA.html\" title=" 524 + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html" 525 + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href=" 526 + "\"RepFieldB.html\" title=\"annotation in typeannos\">" 527 + "@RepFieldB</a>\njava.lang.Integer i1</pre>", 528 529 "<pre><a href=\"RepTypeUseA.html\" title=\"annotation in typeannos" 530 + "\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html" 531 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> " 532 + "<a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 533 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 534 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i2</pre>", 535 536 "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">" 537 + "@RepFieldA</a> <a href=\"RepFieldA.html\" title=" 538 + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html" 539 + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href=" 540 + "\"RepFieldB.html\" title=\"annotation in typeannos\">" 541 + "@RepFieldB</a>\n<a href=\"RepTypeUseA.html\" title=" 542 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html" 543 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 544 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 545 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 546 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i3</pre>", 547 548 "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">" 549 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html" 550 + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href=" 551 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 552 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html" 553 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n" 554 + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">" 555 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" " 556 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=" 557 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 558 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html" 559 + "\" title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.Integer i4</pre>", 560 561 "<pre>java.lang.String <a href=\"RepTypeUseA.html\" title=" 562 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html" 563 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 564 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 565 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 566 + "\"annotation in typeannos\">@RepTypeUseB</a> [] <a href=" 567 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 568 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 569 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" " 570 + "title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=" 571 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 572 + "@RepTypeUseB</a> [] sa</pre>"); 573 574 checkOutput("typeannos/RepeatingOnMethod.html", true, 575 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">" 576 + "<code><span class=\"memberNameLink\"><a href=" 577 + "\"#test1()\">test1</a></span>()</code>", 578 579 "<code>(package private) <a href=\"RepTypeUseA.html\" " 580 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 581 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 582 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 583 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html" 584 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>" 585 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">" 586 + "<a href=\"#test2()\">test2</a>" 587 + "</span>()</code>", 588 589 "<code>(package private) <a href=\"RepTypeUseA.html\" " 590 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 591 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 592 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 593 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 594 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>" 595 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">" 596 + "<a href=\"#test3()\">test3</a>" 597 + "</span>()</code>", 598 599 "<code>(package private) <a href=\"RepAllContextsA.html\" " 600 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=" 601 + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">" 602 + "@RepAllContextsA</a> <a href=\"RepAllContextsB.html\" " 603 + "title=\"annotation in typeannos\">@RepAllContextsB</a> <a href=" 604 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 605 + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">" 606 + "<code><span class=\"memberNameLink\"><a href=\"" 607 + "#test4()\">test4</a></span>()</code>", 608 609 "<code><span class=\"memberNameLink\"><a href=\"" 610 + "#test5(java.lang.String,java.lang.String...)\">test5</a></span>" 611 + "(java.lang.String parameter,\n java.lang.String <a href=" 612 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 613 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 614 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html" 615 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=" 616 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 617 + "@RepTypeUseB</a> ... vararg)</code>", 618 619 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">" 620 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title=" 621 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\"" 622 + " title=\"annotation in typeannos\">@RepMethodB</a> <a href=" 623 + "\"RepMethodB.html\" title=\"annotation in typeannos\">" 624 + "@RepMethodB</a>\njava.lang.String test1()", 625 626 "<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 627 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 628 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" " 629 + "title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 630 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String test2()", 631 632 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">" 633 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title=" 634 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\" " 635 + "title=\"annotation in typeannos\">@RepMethodB</a> <a href=" 636 + "\"RepMethodB.html\" title=\"annotation in typeannos\">" 637 + "@RepMethodB</a>\n<a href=\"RepTypeUseA.html\" title=" 638 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" " 639 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 640 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 641 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 642 + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String test3()", 643 644 "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">" 645 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" " 646 + "title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href=" 647 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 648 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" " 649 + "title=\"annotation in typeannos\">@RepAllContextsB</a>\n<a href=" 650 + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">" 651 + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" " 652 + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=" 653 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">" 654 + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" " 655 + "title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.String test4()", 656 657 "java.lang.String test5(<a href=\"RepTypeUseA.html\" " 658 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 659 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 660 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 661 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 662 + "title=\"annotation in typeannos\">@RepTypeUseB</a> RepeatingOnMethod " 663 + "this,\n <a href=\"RepParameterA.html\" " 664 + "title=\"annotation in typeannos\">@RepParameterA</a> <a href=" 665 + "\"RepParameterA.html\" title=\"annotation in typeannos\">" 666 + "@RepParameterA</a> <a href=\"RepParameterB.html\" " 667 + "title=\"annotation in typeannos\">@RepParameterB</a> <a href=" 668 + "\"RepParameterB.html\" title=\"annotation in typeannos\">" 669 + "@RepParameterB</a>\n java.lang.String parameter,\n" 670 + " <a href=\"RepParameterA.html\" title=" 671 + "\"annotation in typeannos\">@RepParameterA</a> <a href=\"RepParameterA.html\"" 672 + " title=\"annotation in typeannos\">@RepParameterA</a> <a href=" 673 + "\"RepParameterB.html\" title=\"annotation in typeannos\">" 674 + "@RepParameterB</a> <a href=\"RepParameterB.html\" title=" 675 + "\"annotation in typeannos\">@RepParameterB</a>\n " 676 + "java.lang.String <a href=\"RepTypeUseA.html\" title=" 677 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" " 678 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 679 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">" 680 + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=" 681 + "\"annotation in typeannos\">@RepTypeUseB</a> ... vararg)"); 682 683 checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true, 684 "<code>(package private) <T> java.lang.String</code></td>\n" 685 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=" 686 + "\"#" 687 + "genericMethod(T)\">genericMethod</a></span>(T t)</code>", 688 689 "<code>(package private) <T> java.lang.String</code></td>\n" 690 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=" 691 + "\"#" 692 + "genericMethod2(T)\">genericMethod2</a></span>(<a href=\"RepTypeUseA.html" 693 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html" 694 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html" 695 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html" 696 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> T t)</code>", 697 698 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>" 699 + "<span class=\"memberNameLink\"><a href=\"#" 700 + "test()\">test</a></span>()</code>", 701 702 "java.lang.String test(<a href=\"RepTypeUseA.html\" " 703 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=" 704 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 705 + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=" 706 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 707 + "title=\"annotation in typeannos\">@RepTypeUseB</a> " 708 + "RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod<<a href=" 709 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">" 710 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=" 711 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html" 712 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" " 713 + "title=\"annotation in typeannos\">@RepTypeUseB</a> T> this)"); 714 715 checkOutput("typeannos/RepeatingOnVoidMethodDeclaration.html", true, 716 "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">" 717 + "@RepMethodA</a> <a href=\"RepMethodA.html\" title=" 718 + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html" 719 + "\" title=\"annotation in typeannos\">@RepMethodB</a> <a href=" 720 + "\"RepMethodB.html\" title=\"annotation in typeannos\">" 721 + "@RepMethodB</a>\nvoid test()"); 722 } 723 } --- EOF ---