• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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