1 package com.google.devtools.ksp.symbol.impl.synthetic 2 3 import com.google.devtools.ksp.IdKey 4 import com.google.devtools.ksp.KSObjectCache 5 import com.google.devtools.ksp.symbol.KSAnnotation 6 import com.google.devtools.ksp.symbol.KSNode 7 import com.google.devtools.ksp.symbol.KSReferenceElement 8 import com.google.devtools.ksp.symbol.KSType 9 import com.google.devtools.ksp.symbol.KSTypeReference 10 import com.google.devtools.ksp.symbol.KSVisitor 11 import com.google.devtools.ksp.symbol.Location 12 import com.google.devtools.ksp.symbol.Modifier 13 import com.google.devtools.ksp.symbol.NonExistLocation 14 import com.google.devtools.ksp.symbol.Origin 15 16 class KSTypeReferenceSyntheticImpl(val ksType: KSType, override val parent: KSNode?) : KSTypeReference { 17 companion object : KSObjectCache<Pair<IdKey<KSType>, KSNode?>, KSTypeReferenceSyntheticImpl>() { getCachednull18 fun getCached(ksType: KSType, parent: KSNode?) = KSTypeReferenceSyntheticImpl.cache 19 .getOrPut(Pair(IdKey(ksType), parent)) { KSTypeReferenceSyntheticImpl(ksType, parent) } 20 } 21 22 override val annotations: Sequence<KSAnnotation> = emptySequence() 23 24 override val element: KSReferenceElement? = null 25 26 override val location: Location = NonExistLocation 27 28 override val modifiers: Set<Modifier> = emptySet() 29 30 override val origin: Origin = Origin.SYNTHETIC 31 acceptnull32 override fun <D, R> accept(visitor: KSVisitor<D, R>, data: D): R { 33 return visitor.visitTypeReference(this, data) 34 } 35 resolvenull36 override fun resolve(): KSType { 37 return ksType 38 } 39 toStringnull40 override fun toString(): String { 41 return ksType.toString() 42 } 43 } 44