Replace ad-hoc .newRef() with .toFirResolvedTypeRef()

This commit is contained in:
Leonid Startsev
2022-08-18 13:45:46 +02:00
committed by Space
parent dc7ba5d22b
commit 0b3d9ffa71
2 changed files with 8 additions and 12 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.constructClassLikeType
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames
@@ -38,7 +39,9 @@ fun FirDeclarationGenerationExtension.buildPrimaryConstructor(owner: FirClassSym
return buildPrimaryConstructor {
moduleData = session.moduleData
origin = key.origin
returnTypeRef = owner.defaultType().newRef()
returnTypeRef = run {
owner.defaultType().toFirResolvedTypeRef()
}
this.status = status
symbol = FirConstructorSymbol(classId)
if (isInner && classId.isNestedClass) {
@@ -52,10 +55,6 @@ fun FirDeclarationGenerationExtension.buildPrimaryConstructor(owner: FirClassSym
}
}
fun ConeKotlinType.newRef(): FirResolvedTypeRef = buildResolvedTypeRef {
type = this@newRef
}
fun newSimpleTypeParameter(firSession: FirSession, containingDeclarationSymbol: FirBasedSymbol<*>, name: Name) = buildTypeParameter {
moduleData = firSession.moduleData
origin = SerializationPluginKey.origin
@@ -30,11 +30,8 @@ import org.jetbrains.kotlin.fir.scopes.impl.toConeType
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.ConeTypeProjection
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.classId
import org.jetbrains.kotlin.fir.types.constructClassLikeType
import org.jetbrains.kotlin.fir.types.toTypeProjection
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
@@ -195,7 +192,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
valueParameters.addAll(List(serializableClassSymbol.typeParameterSymbols.size) { i ->
newSimpleValueParameter(
session,
kSerializerClassId.constructClassLikeType(arrayOf(parametersAsArguments[i]), false).newRef(),
kSerializerClassId.constructClassLikeType(arrayOf(parametersAsArguments[i]), false).toFirResolvedTypeRef(),
Name.identifier("${SerialEntityNames.typeArgPrefix}$i")
)
})
@@ -267,7 +264,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
valueParameters.addAll(owner.typeParameterSymbols.mapIndexed { i, typeParam ->
newSimpleValueParameter(
session,
kSerializerClassId.constructClassLikeType(arrayOf(typeParam.toConeType()), false).newRef(),
kSerializerClassId.constructClassLikeType(arrayOf(typeParam.toConeType()), false).toFirResolvedTypeRef(),
Name.identifier("${SerialEntityNames.typeArgPrefix}$i")
)
})
@@ -311,7 +308,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
isNullable = false
)
), isNullable = false
).newRef()
).toFirResolvedTypeRef()
}
return serializerFirClass.symbol
}