MethodReturnType.java revision 3233:b5d08bc0d224
14Srgrimes/*
2509Srgrimes * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
37627Snate * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44Srgrimes *
5509Srgrimes * This code is free software; you can redistribute it and/or modify it
6509Srgrimes * under the terms of the GNU General Public License version 2 only, as
74Srgrimes * published by the Free Software Foundation.
84Srgrimes *
94Srgrimes * This code is distributed in the hope that it will be useful, but WITHOUT
104Srgrimes * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
114Srgrimes * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
124Srgrimes * version 2 for more details (a copy is included in the LICENSE file that
134Srgrimes * accompanied this code).
144Srgrimes *
154Srgrimes * You should have received a copy of the GNU General Public License version
164Srgrimes * 2 along with this work; if not, write to the Free Software Foundation,
173698Swollman * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
183698Swollman *
195908Sbde * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
204Srgrimes * or visit www.oracle.com if you need additional information or have any
212056Swollman * questions.
222056Swollman */
232056Swollman
244Srgrimespackage typeannos;
252056Swollman
262056Swollmanimport java.lang.annotation.*;
274Srgrimes
287432Sbde/*
29798Swollman * This class is replicated from test/tools/javac/annotations/typeAnnotations/newlocations.
303863Sbde */
317432Sbdeclass MtdDefaultScope {
327367Sbde    MtdParameterized<String, String> unannotated() { return null; }
33798Swollman    MtdParameterized<@MRtnA String, String> firstTypeArg() { return null; }
34798Swollman    MtdParameterized<String, @MRtnA String> secondTypeArg() { return null; }
35798Swollman    MtdParameterized<@MRtnA String, @MRtnB String> bothTypeArgs() { return null; }
36798Swollman
374836Sdg    MtdParameterized<@MRtnA MtdParameterized<@MRtnA String, @MRtnB String>, @MRtnB String>
386733Sbde    nestedMtdParameterized() { return null; }
397627Snate
407627Snate    public <T> @MRtnA String method() { return null; }
417627Snate
427627Snate    @MRtnA String [] array1() { return null; }
437627Snate    @MRtnA String @MRtnB [] array1Deep() { return null; }
447627Snate    @MRtnA String [] [] array2() { return null; }
457627Snate    @MRtnA String @MRtnA [] @MRtnB [] array2Deep() { return null; }
462408Sbde    String @MRtnA [] [] array2First() { return null; }
474Srgrimes    String [] @MRtnB [] array2Second() { return null; }
48712Swollman
49974Sdg    // Old-style array syntax
504Srgrimes    String array2FirstOld() @MRtnA [] { return null; }
514Srgrimes    String array2SecondOld() [] @MRtnB [] { return null; }
524Srgrimes}
532408Sbde
542408Sbdeclass MtdModifiedScoped {
553863Sbde    public final MtdParameterized<String, String> unannotated() { return null; }
564Srgrimes    public final MtdParameterized<@MRtnA String, String> firstTypeArg() { return null; }
574Srgrimes    public final MtdParameterized<String, @MRtnA String> secondTypeArg() { return null; }
583863Sbde    public final MtdParameterized<@MRtnA String, @MRtnB String> bothTypeArgs() { return null; }
592408Sbde
602408Sbde    public final MtdParameterized<@MRtnA MtdParameterized<@MRtnA String, @MRtnB String>, @MRtnB String>
613258Sdg    nestedMtdParameterized() { return null; }
622408Sbde
632408Sbde    public final @MRtnA String [] array1() { return null; }
645908Sbde    public final @MRtnA String @MRtnB [] array1Deep() { return null; }
655908Sbde    public final @MRtnA String [] [] array2() { return null; }
665908Sbde    public final @MRtnA String @MRtnA [] @MRtnB [] array2Deep() { return null; }
671549Srgrimes    public final String @MRtnA [] [] array2First() { return null; }
685908Sbde    public final String [] @MRtnB [] array2Second() { return null; }
695908Sbde}
705908Sbde
715908Sbdeclass MtdParameterized<K, V> { }
726018Sphk
735908Sbde@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
744Srgrimes@Documented
755327Sgibbs@interface MRtnA { }
765327Sgibbs@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
774Srgrimes@Documented
784Srgrimes@interface MRtnB { }
794Srgrimes