xref: /aosp_15_r20/external/ksp/test-utils/testData/api/replaceWithErrorTypeArgs.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: ReplaceWithErrorTypeArgsProcessor
20 // EXPECTED:
21 // KS.star.replace([INVARIANT Int, INVARIANT String]): KS<Int, String>
22 // KS.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
23 // KS.asType([INVARIANT Int, INVARIANT String]): KS<Int, String>
24 // KS.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
25 // KS.asType(emptyList()): KS<T1, T2>
26 // KL.star.replace([INVARIANT Int, INVARIANT String]): KL<Int, String>
27 // KL.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
28 // KL.asType([INVARIANT Int, INVARIANT String]): KL<Int, String>
29 // KL.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
30 // KL.asType(emptyList()): KL<T1, T2>
31 // JS.star.replace([INVARIANT Int, INVARIANT String]): JS<Int, String>
32 // JS.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
33 // JS.asType([INVARIANT Int, INVARIANT String]): JS<Int, String>
34 // JS.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
35 // JS.asType(emptyList()): JS<T1, T2>
36 // JL.star.replace([INVARIANT Int, INVARIANT String]): JL<Int, String>
37 // JL.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
38 // JL.asType([INVARIANT Int, INVARIANT String]): JL<Int, String>
39 // JL.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
40 // JL.asType(emptyList()): JL<T1, T2>
41 // KS1.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
42 // KS1.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
43 // KS1.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
44 // KS1.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
45 // KS1.asType(emptyList()): KS1<T>
46 // KL1.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
47 // KL1.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
48 // KL1.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
49 // KL1.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
50 // KL1.asType(emptyList()): KL1<T>
51 // JS1.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
52 // JS1.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
53 // JS1.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
54 // JS1.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
55 // JS1.asType(emptyList()): JS1<T>
56 // JL1.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
57 // JL1.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
58 // JL1.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
59 // JL1.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
60 // JL1.asType(emptyList()): JL1<T>
61 // JSE.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
62 // JSE.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
63 // JSE.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
64 // JSE.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
65 // JSE.asType(emptyList()): JSE
66 // JSE.E.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
67 // JSE.E.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
68 // JSE.E.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
69 // JSE.E.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
70 // JSE.E.asType(emptyList()): JSE.E
71 // JLE.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
72 // JLE.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
73 // JLE.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
74 // JLE.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
75 // JLE.asType(emptyList()): JLE
76 // JLE.E.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
77 // JLE.E.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
78 // JLE.E.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
79 // JLE.E.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
80 // JLE.E.asType(emptyList()): JLE.E
81 // KSE.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
82 // KSE.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
83 // KSE.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
84 // KSE.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
85 // KSE.asType(emptyList()): KSE
86 // KSE.E.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
87 // KSE.E.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
88 // KSE.E.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
89 // KSE.E.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
90 // KSE.E.asType(emptyList()): E
91 // KLE.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
92 // KLE.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
93 // KLE.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
94 // KLE.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
95 // KLE.asType(emptyList()): KLE
96 // KLE.E.star.replace([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
97 // KLE.E.star.replace([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
98 // KLE.E.asType([INVARIANT Int, INVARIANT String]): <ERROR TYPE>
99 // KLE.E.asType([INVARIANT NotExist1, INVARIANT NotExist2]): <ERROR TYPE>
100 // KLE.E.asType(emptyList()): KLE.E
101 // END
102 
103 // MODULE: lib
104 // FILE: JL.java
105 class JL<T1, T2> {}
106 class JL1<T> {}
<lambda>null107 enum JLE {
108     E
109 }
110 
111 // FILE: KL.kt
112 class KL<T1, T2>
113 class KL1<T>
114 enum class KLE {
115     E
116 }
117 
118 // MODULE: main(lib)
119 // FILE: JS.java
120 class JS<T1, T2> {}
121 class JS1<T> {}
<lambda>null122 enum JSE {
123     E
124 }
125 
126 // FILE: KS.kt
127 class KS<T1, T2>
128 class KS1<T>
129 enum class KSE {
130     E
131 }
132 
133 val x: KS<Int, String> = TODO()
134 val y: KS<NotExist1, NotExist2> = TODO()
135