xref: /aosp_15_r20/external/ksp/test-utils/testData/api/javaWildcards2.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li /*
2*af87fb4bSXin Li  * Copyright 2020 Google LLC
3*af87fb4bSXin Li  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4*af87fb4bSXin Li  *
5*af87fb4bSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*af87fb4bSXin Li  * you may not use this file except in compliance with the License.
7*af87fb4bSXin Li  * You may obtain a copy of the License at
8*af87fb4bSXin Li  *
9*af87fb4bSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*af87fb4bSXin Li  *
11*af87fb4bSXin Li  * Unless required by applicable law or agreed to in writing, software
12*af87fb4bSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*af87fb4bSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*af87fb4bSXin Li  * See the License for the specific language governing permissions and
15*af87fb4bSXin Li  * limitations under the License.
16*af87fb4bSXin Li  */
17*af87fb4bSXin Li 
18*af87fb4bSXin Li // WITH_RUNTIME
19*af87fb4bSXin Li // TEST PROCESSOR: JavaWildcard2Processor
20*af87fb4bSXin Li // EXPECTED:
21*af87fb4bSXin Li // MyEnum : Any
22*af87fb4bSXin Li // <init> : MyEnum
23*af87fb4bSXin Li // VarianceSubjectSuppressed : Any
24*af87fb4bSXin Li // R : Any?
25*af87fb4bSXin Li // starList : List<Any?>
26*af87fb4bSXin Li // typeArgList : List<R>
27*af87fb4bSXin Li // numberList : List<Number>
28*af87fb4bSXin Li // stringList : List<String>
29*af87fb4bSXin Li // enumList : List<MyEnum>
30*af87fb4bSXin Li // jvmWildcard : List<out [@kotlin.jvm.JvmWildcard] String>
31*af87fb4bSXin Li // suppressJvmWildcard : List<[@kotlin.jvm.JvmSuppressWildcards] Number>
32*af87fb4bSXin Li // <init> : VarianceSubjectSuppressed<R>
33*af87fb4bSXin Li // propWithFinalType : String
34*af87fb4bSXin Li // propWithFinalType.getter() : String
35*af87fb4bSXin Li // <set-?> : String
36*af87fb4bSXin Li // propWithOpenType : Number
37*af87fb4bSXin Li // propWithOpenType.getter() : Number
38*af87fb4bSXin Li // <set-?> : Number
39*af87fb4bSXin Li // propWithFinalGeneric : List<String>
40*af87fb4bSXin Li // propWithFinalGeneric.getter() : List<String>
41*af87fb4bSXin Li // <set-?> : List<String>
42*af87fb4bSXin Li // propWithOpenGeneric : List<Number>
43*af87fb4bSXin Li // propWithOpenGeneric.getter() : List<Number>
44*af87fb4bSXin Li // <set-?> : List<Number>
45*af87fb4bSXin Li // propWithTypeArg : R
46*af87fb4bSXin Li // propWithTypeArg.getter() : R
47*af87fb4bSXin Li // <set-?> : R
48*af87fb4bSXin Li // propWithTypeArgGeneric : List<R>
49*af87fb4bSXin Li // propWithTypeArgGeneric.getter() : List<R>
50*af87fb4bSXin Li // <set-?> : List<R>
51*af87fb4bSXin Li // propWithOpenTypeButSuppressAnnotation : Number
52*af87fb4bSXin Li // propWithOpenTypeButSuppressAnnotation.getter() : Number
53*af87fb4bSXin Li // <set-?> : Number
54*af87fb4bSXin Li // list2 : List<Any?>
55*af87fb4bSXin Li // list1 : List<Any?>
56*af87fb4bSXin Li // list3 : List<R>
57*af87fb4bSXin Li // listTypeArg : List<R>
58*af87fb4bSXin Li // list4 : List<Number>
59*af87fb4bSXin Li // listTypeArgNumber : List<Number>
60*af87fb4bSXin Li // list5 : List<String>
61*af87fb4bSXin Li // listTypeArgString : List<String>
62*af87fb4bSXin Li // list6 : List<MyEnum>
63*af87fb4bSXin Li // listTypeArgEnum : List<MyEnum>
64*af87fb4bSXin Li // list7 : List<out [@kotlin.jvm.JvmWildcard] String>
65*af87fb4bSXin Li // explicitJvmWildcard : List<out [@kotlin.jvm.JvmWildcard] String>
66*af87fb4bSXin Li // list8 : List<[@kotlin.jvm.JvmSuppressWildcards] Number>
67*af87fb4bSXin Li // explicitJvmSuppressWildcard_OnType : List<[@kotlin.jvm.JvmSuppressWildcards] Number>
68*af87fb4bSXin Li // list9 : [@kotlin.jvm.JvmSuppressWildcards] List<Number>
69*af87fb4bSXin Li // explicitJvmSuppressWildcard_OnType2 : [@kotlin.jvm.JvmSuppressWildcards] List<Number>
70*af87fb4bSXin Li // END
71*af87fb4bSXin Li 
72*af87fb4bSXin Li enum class MyEnum()
73*af87fb4bSXin Li 
74*af87fb4bSXin Li @JvmSuppressWildcards
75*af87fb4bSXin Li class VarianceSubjectSuppressed<R>(
76*af87fb4bSXin Li     starList: List<*>,
77*af87fb4bSXin Li     typeArgList: List<R>,
78*af87fb4bSXin Li     numberList: List<Number>,
79*af87fb4bSXin Li     stringList: List<String>,
80*af87fb4bSXin Li     enumList: List<MyEnum>,
81*af87fb4bSXin Li     jvmWildcard: List<@JvmWildcard String>,
82*af87fb4bSXin Li     suppressJvmWildcard: List<@JvmSuppressWildcards Number>
83*af87fb4bSXin Li ) {
84*af87fb4bSXin Li     var propWithFinalType: String = ""
85*af87fb4bSXin Li     var propWithOpenType: Number = 3
86*af87fb4bSXin Li     var propWithFinalGeneric: List<String> = TODO()
87*af87fb4bSXin Li     var propWithOpenGeneric: List<Number> = TODO()
88*af87fb4bSXin Li     var propWithTypeArg: R = TODO()
89*af87fb4bSXin Li     var propWithTypeArgGeneric: List<R> = TODO()
90*af87fb4bSXin Li     @JvmSuppressWildcards
91*af87fb4bSXin Li     var propWithOpenTypeButSuppressAnnotation: Number = 3
list1null92*af87fb4bSXin Li     fun list1(list2: List<*>): List<*> { TODO() }
listTypeArgnull93*af87fb4bSXin Li     fun listTypeArg(list3: List<R>): List<R> { TODO() }
listTypeArgNumbernull94*af87fb4bSXin Li     fun listTypeArgNumber(list4: List<Number>): List<Number> { TODO() }
listTypeArgStringnull95*af87fb4bSXin Li     fun listTypeArgString(list5: List<String>): List<String> { TODO() }
listTypeArgEnumnull96*af87fb4bSXin Li     fun listTypeArgEnum(list6: List<MyEnum>): List<MyEnum> { TODO() }
explicitJvmWildcardnull97*af87fb4bSXin Li     fun explicitJvmWildcard(
98*af87fb4bSXin Li         list7: List<@JvmWildcard String>
99*af87fb4bSXin Li     ): List<@JvmWildcard String> { TODO() }
100*af87fb4bSXin Li 
explicitJvmSuppressWildcard_OnTypenull101*af87fb4bSXin Li     fun explicitJvmSuppressWildcard_OnType(
102*af87fb4bSXin Li         list8: List<@JvmSuppressWildcards Number>
103*af87fb4bSXin Li     ): List<@JvmSuppressWildcards Number> { TODO() }
104*af87fb4bSXin Li 
explicitJvmSuppressWildcard_OnType2null105*af87fb4bSXin Li     fun explicitJvmSuppressWildcard_OnType2(
106*af87fb4bSXin Li         list9: @JvmSuppressWildcards List<Number>
107*af87fb4bSXin Li     ): @JvmSuppressWildcards List<Number> { TODO() }
108*af87fb4bSXin Li }
109