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