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