[Analysis API] implement better rendering for chained KtSubstitutor
This commit is contained in:
committed by
Space Team
parent
e2d248b76d
commit
1107e728a2
+2
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.fir.resolve.getSymbolByLookupTag
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.ConeTypeParameterBasedTypeVariable
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.originalConstructorIfTypeAlias
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutorByMap
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
@@ -505,6 +506,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
if (substitutor == ConeSubstitutor.Empty) return KtSubstitutor.Empty(token)
|
||||
return when (substitutor) {
|
||||
is ConeSubstitutorByMap -> KtFirMapBackedSubstitutor(substitutor, this@KtSymbolByFirBuilder)
|
||||
is ChainedSubstitutor -> KtFirChainedSubstitutor(substitutor, this@KtSymbolByFirBuilder)
|
||||
else -> KtFirGenericSubstitutor(substitutor, this@KtSymbolByFirBuilder)
|
||||
}
|
||||
}
|
||||
|
||||
+18
@@ -7,12 +7,14 @@ package org.jetbrains.kotlin.analysis.api.fir.types
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.KtChainedSubstitutor
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.KtMapBackedSubstitutor
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtSubstitutor
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutorByMap
|
||||
|
||||
@@ -49,4 +51,20 @@ internal class KtFirMapBackedSubstitutor(
|
||||
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(KtAnalysisApiInternals::class)
|
||||
internal class KtFirChainedSubstitutor(
|
||||
substitutor: ChainedSubstitutor,
|
||||
builder: KtSymbolByFirBuilder,
|
||||
) : AbstractKtFirSubstitutor<ChainedSubstitutor>(substitutor, builder), KtChainedSubstitutor {
|
||||
override val first
|
||||
get(): KtSubstitutor {
|
||||
return builder.typeBuilder.buildSubstitutor(substitutor.first)
|
||||
}
|
||||
|
||||
override val second
|
||||
get(): KtSubstitutor {
|
||||
return builder.typeBuilder.buildSubstitutor(substitutor.second)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user