[FIR] Never create ConeSubstitutorByMap with empty substitution
Relates to KT-66323
This commit is contained in:
committed by
Space Team
parent
6c691b497a
commit
624bea3ecf
+3
-2
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.fir.java.resolveIfJavaType
|
||||
import org.jetbrains.kotlin.fir.java.symbols.FirJavaOverriddenSyntheticPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.java.toConeKotlinTypeProbablyFlexible
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutorByMap
|
||||
import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmDescriptor
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
@@ -279,7 +280,7 @@ class FirSignatureEnhancement(
|
||||
var isJavaRecordComponent = false
|
||||
|
||||
val typeParameterSubstitutionMap = mutableMapOf<FirTypeParameterSymbol, ConeKotlinType>()
|
||||
var typeParameterSubstitutor: ConeSubstitutorByMap? = null
|
||||
var typeParameterSubstitutor: ConeSubstitutor? = null
|
||||
val declarationOrigin =
|
||||
if (isIntersectionOverride) FirDeclarationOrigin.IntersectionOverride else FirDeclarationOrigin.Enhancement
|
||||
|
||||
@@ -360,7 +361,7 @@ class FirSignatureEnhancement(
|
||||
newTypeParameter
|
||||
}
|
||||
if (typeParameterSubstitutionMap.isNotEmpty()) {
|
||||
typeParameterSubstitutor = ConeSubstitutorByMap(typeParameterSubstitutionMap, session)
|
||||
typeParameterSubstitutor = ConeSubstitutorByMap.create(typeParameterSubstitutionMap, session)
|
||||
}
|
||||
returnTypeRef = newReturnTypeRef.withReplacedConeType(
|
||||
typeParameterSubstitutor?.substituteOrNull(newReturnTypeRef.coneType)
|
||||
|
||||
@@ -415,7 +415,7 @@ class JvmMappedScope(
|
||||
* @returns {T1 -> F1, T2 -> F2} substitution
|
||||
*/
|
||||
private fun createMappingSubstitutor(fromClass: FirRegularClass, toClass: FirRegularClass, session: FirSession): ConeSubstitutor =
|
||||
ConeSubstitutorByMap(
|
||||
ConeSubstitutorByMap.create(
|
||||
fromClass.typeParameters.zip(toClass.typeParameters).associate { (fromTypeParameter, toTypeParameter) ->
|
||||
fromTypeParameter.symbol to ConeTypeParameterTypeImpl(
|
||||
ConeTypeParameterLookupTag(toTypeParameter.symbol),
|
||||
|
||||
Reference in New Issue
Block a user