• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.google.devtools.ksp.symbol.impl.binary
2 
3 import com.google.devtools.ksp.KSObjectCache
4 import com.google.devtools.ksp.processing.impl.KSNameImpl
5 import com.google.devtools.ksp.symbol.*
6 import com.google.devtools.ksp.toKSModifiers
7 import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
8 
9 class KSTypeAliasDescriptorImpl(descriptor: TypeAliasDescriptor) :
10     KSTypeAlias,
11     KSDeclarationDescriptorImpl(descriptor),
12     KSExpectActual by KSExpectActualDescriptorImpl(descriptor) {
13     companion object : KSObjectCache<TypeAliasDescriptor, KSTypeAliasDescriptorImpl>() {
<lambda>null14         fun getCached(descriptor: TypeAliasDescriptor) = KSTypeAliasDescriptorImpl.cache.getOrPut(descriptor) {
15             KSTypeAliasDescriptorImpl(descriptor)
16         }
17     }
18 
<lambda>null19     override val name: KSName by lazy {
20         KSNameImpl.getCached(descriptor.name.asString())
21     }
22 
<lambda>null23     override val modifiers: Set<Modifier> by lazy {
24         descriptor.toKSModifiers()
25     }
26 
<lambda>null27     override val typeParameters: List<KSTypeParameter> by lazy {
28         descriptor.declaredTypeParameters.map { KSTypeParameterDescriptorImpl.getCached(it) }
29     }
30 
<lambda>null31     override val type: KSTypeReference by lazy {
32         KSTypeReferenceDescriptorImpl.getCached(descriptor.underlyingType, origin, this)
33     }
34 
acceptnull35     override fun <D, R> accept(visitor: KSVisitor<D, R>, data: D): R {
36         return visitor.visitTypeAlias(this, data)
37     }
38 }
39