blob: b6b4c1752bdfa9bcd4243eda01ec8e65fb59bc97 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package com.google.devtools.ksp.impl.symbol.kotlin
import com.google.devtools.ksp.KSObjectCache
import com.google.devtools.ksp.processing.impl.KSNameImpl
import com.google.devtools.ksp.symbol.KSExpectActual
import com.google.devtools.ksp.symbol.KSName
import com.google.devtools.ksp.symbol.KSPropertyDeclaration
import com.google.devtools.ksp.symbol.KSPropertyGetter
import com.google.devtools.ksp.symbol.KSPropertySetter
import com.google.devtools.ksp.symbol.KSType
import com.google.devtools.ksp.symbol.KSTypeReference
import com.google.devtools.ksp.symbol.KSVisitor
import org.jetbrains.kotlin.analysis.api.symbols.KtLocalVariableSymbol
class KSPropertyDeclarationLocalVariableImpl private constructor(
private val ktLocalVariableSymbol: KtLocalVariableSymbol
) : KSPropertyDeclaration,
AbstractKSDeclarationImpl(ktLocalVariableSymbol),
KSExpectActual by KSExpectActualImpl(ktLocalVariableSymbol) {
companion object : KSObjectCache<KtLocalVariableSymbol, KSPropertyDeclarationLocalVariableImpl>() {
fun getCached(ktLocalVariableSymbol: KtLocalVariableSymbol) =
cache.getOrPut(ktLocalVariableSymbol) { KSPropertyDeclarationLocalVariableImpl(ktLocalVariableSymbol) }
}
override val getter: KSPropertyGetter? = null
override val setter: KSPropertySetter? = null
override val extensionReceiver: KSTypeReference? = null
override val type: KSTypeReference by lazy {
KSTypeReferenceImpl.getCached(ktLocalVariableSymbol.returnType)
}
override val isMutable: Boolean = !ktLocalVariableSymbol.isVal
override val hasBackingField: Boolean = false
override fun isDelegated(): Boolean = false
override fun findOverridee() = null
override fun asMemberOf(containing: KSType): KSType {
TODO("Not yet implemented")
}
override val qualifiedName: KSName? by lazy {
KSNameImpl.getCached("${parentDeclaration?.qualifiedName?.asString()}.${this.simpleName.asString()}")
}
override fun <D, R> accept(visitor: KSVisitor<D, R>, data: D): R {
return visitor.visitPropertyDeclaration(this, data)
}
}
|