Skip to content

Commit 34a3e1d

Browse files
committed
fix KSPropertyDeclarationParameterImpl for override checking when there is no overridden symbols
1 parent 46601c4 commit 34a3e1d

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/OverrideeProcessor.kt

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class OverrideeProcessor: AbstractTestProcessor() {
3131
override fun toResult() = results
3232

3333
override fun process(resolver: Resolver) {
34+
logSubject(resolver, "NoOverride")
3435
logSubject(resolver, "Subject")
3536
logSubject(resolver, "JavaSubject.Subject")
3637
logSubject(resolver, "lib.Subject")

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSPropertyDeclarationParameterImpl.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class KSPropertyDeclarationParameterImpl private constructor(val ktParameter: Kt
7878
override fun isDelegated(): Boolean = false
7979

8080
override fun findOverridee(): KSPropertyDeclaration? {
81-
return ResolverImpl.instance.resolvePropertyDeclaration(this)?.original?.overriddenDescriptors?.single { it.overriddenDescriptors.isEmpty() }
81+
return ResolverImpl.instance.resolvePropertyDeclaration(this)?.original?.overriddenDescriptors?.singleOrNull { it.overriddenDescriptors.isEmpty() }
8282
?.toKSPropertyDeclaration()
8383
}
8484

compiler-plugin/testData/api/overridee.kt

+11
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
// WITH_RUNTIME
1919
// TEST PROCESSOR: OverrideeProcessor
2020
// EXPECTED:
21+
// NoOverride:
22+
// NoOverride.prop -> null
23+
// NoOverride.propInParam -> null
24+
// NoOverride.func(param:Int) -> null
2125
// Subject:
2226
// Companion.companionMethod() -> null
2327
// Subject.notOverridingProp -> null
@@ -127,6 +131,13 @@ abstract class Subject: Base<String>() {
127131
}
128132
// MODULE: main(lib)
129133
// FILE: a.kt
134+
class NoOverride(val propInParam: Int) {
135+
val prop: Int
136+
fun func(val param: Int) {
137+
138+
}
139+
}
140+
130141
abstract class GrandBase {
131142
open var openGrandBaseProp: Int = 0
132143
abstract var abstractGrandBaseProp: Int = 0

0 commit comments

Comments
 (0)