[Analysis API] make KtDeclarationSymbol <: KtSymbolWithTypeParameters

To simplify work with type parameters
This commit is contained in:
Ilya Kirillov
2022-05-27 16:15:58 +02:00
committed by teamcity
parent 8f4554959e
commit f189fd1ff0
43 changed files with 142 additions and 20 deletions
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.inference.returnTypeOrNothing
@@ -53,6 +54,10 @@ internal class KtFe10DescSamConstructorSymbol(
override val origin: KtSymbolOrigin
get() = withValidityAssertion { expandedDescriptor.getSymbolOrigin(analysisContext) }
override val typeParameters: List<KtTypeParameterSymbol>
get() = withValidityAssertion { descriptor.typeParameters.map { KtFe10DescTypeParameterSymbol(it, analysisContext) } }
override fun createPointer(): KtSymbolPointer<KtSamConstructorSymbol> = withValidityAssertion {
val pointerByPsi = KtPsiBasedSymbolPointer.createForSymbolFromSource(this)
if (pointerByPsi != null) {