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