Skip to content

Commit 9746fb5

Browse files
jaschdocKSP Auto Pick
authored andcommitted
Add test for self referencing type variables
(cherry picked from commit b19ad1c)
1 parent b61da98 commit 9746fb5

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPUnitTestSuite.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,14 @@ abstract class KSPUnitTestSuite(
718718
runTest("$AA_PATH/sealedClass.kt")
719719
}
720720

721+
@TestMetadata("javaWildcardsSelfReferencing.kt")
722+
@Test
723+
@Bug("https://github.com/google/ksp/issues/1729", BugState.FIXED)
724+
@Bug("https://github.com/google/ksp/issues/1705", BugState.FIXED)
725+
fun testJavaWildcardsSelfReferencing() {
726+
runTest("$AA_PATH/javaWildcardsSelfReferencing.kt")
727+
}
728+
721729
@TestMetadata("shadowingAnnotations.kt")
722730
@Test
723731
fun testShadowingAnnotations() {
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright 2026 Google LLC
3+
* Copyright 2010-2026 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+
// ref : SelfRef<out Any?>
22+
// ref.getter() : SelfRef<out Any?>
23+
// SelfRef : Any
24+
// A : SelfRef<A>
25+
// synthetic constructor for SelfRef : SelfRef<out Any?>
26+
// A : SelfRef<A>
27+
// END
28+
29+
class SelfRef<A : SelfRef<A>>
30+
31+
val ref: SelfRef<*> = TODO()

0 commit comments

Comments
 (0)