1 /* 2 * Copyright (c) 2012, 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 import static com.sun.tools.classfile.TypeAnnotation.TargetType.*; 25 26 /* 27 * @test 28 * @summary Test population of reference info for constructor results 29 * @compile -g Driver.java ReferenceInfoUtil.java Constructors.java 30 * @run main Driver Constructors 31 */ 32 public class Constructors { 33 34 @TADescriptions({ 35 @TADescription(annotation = "TA", type = METHOD_RETURN), 36 @TADescription(annotation = "TB", type = METHOD_RETURN), 37 @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0) 38 }) 39 public String regularClass() { 40 return "class Test { @TA Test() {}" + 41 " @TB Test(@TC int b) {} }"; 42 } 43 44 @TADescriptions({ 45 @TADescription(annotation = "TA", type = METHOD_RETURN), 46 @TADescription(annotation = "TB", type = METHOD_RETURN), 47 @TADescription(annotation = "TC", type = METHOD_FORMAL_PARAMETER, paramIndex = 0) 48 }) 49 @TestClass("Test$Inner") 50 public String innerClass() { 51 return "class Test { class Inner {" + 52 " @TA Inner() {}" + 53 " @TB Inner(@TC int b) {}" + 54 " } }"; 55 } 56 57 /* TODO: Outer.this annotation support. 58 @TADescriptions({ 59 @TADescription(annotation = "TA", type = METHOD_RECEIVER), 60 @TADescription(annotation = "TB", type = METHOD_RETURN), 61 @TADescription(annotation = "TC", type = METHOD_RECEIVER), 62 @TADescription(annotation = "TD", type = METHOD_RETURN), 63 @TADescription(annotation = "TE", type = METHOD_FORMAL_PARAMETER, paramIndex = 0) 64 }) 65 @TestClass("Test$Inner") 66 public String innerClass2() { 67 return "class Test { class Inner {" + 68 " @TB Inner(@TA Test Test.this) {}" + 69 " @TD Inner(@TC Test Test.this, @TE int b) {}" + 70 " } }"; 71 } 72 */ 73 }