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.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.constructClassLikeType import org.jetbrains.kotlin.fir.types.constructClassLikeType
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames
@@ -38,7 +39,9 @@ fun FirDeclarationGenerationExtension.buildPrimaryConstructor(owner: FirClassSym
return buildPrimaryConstructor { return buildPrimaryConstructor {
moduleData = session.moduleData moduleData = session.moduleData
origin = key.origin origin = key.origin
returnTypeRef = owner.defaultType().newRef() returnTypeRef = run {
owner.defaultType().toFirResolvedTypeRef()
}
this.status = status this.status = status
symbol = FirConstructorSymbol(classId) symbol = FirConstructorSymbol(classId)
if (isInner && classId.isNestedClass) { 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 { fun newSimpleTypeParameter(firSession: FirSession, containingDeclarationSymbol: FirBasedSymbol<*>, name: Name) = buildTypeParameter {
moduleData = firSession.moduleData moduleData = firSession.moduleData
origin = SerializationPluginKey.origin 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.SymbolInternals
import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType
import org.jetbrains.kotlin.fir.symbols.impl.* 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.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.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -195,7 +192,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
valueParameters.addAll(List(serializableClassSymbol.typeParameterSymbols.size) { i -> valueParameters.addAll(List(serializableClassSymbol.typeParameterSymbols.size) { i ->
newSimpleValueParameter( newSimpleValueParameter(
session, session,
kSerializerClassId.constructClassLikeType(arrayOf(parametersAsArguments[i]), false).newRef(), kSerializerClassId.constructClassLikeType(arrayOf(parametersAsArguments[i]), false).toFirResolvedTypeRef(),
Name.identifier("${SerialEntityNames.typeArgPrefix}$i") Name.identifier("${SerialEntityNames.typeArgPrefix}$i")
) )
}) })
@@ -267,7 +264,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
valueParameters.addAll(owner.typeParameterSymbols.mapIndexed { i, typeParam -> valueParameters.addAll(owner.typeParameterSymbols.mapIndexed { i, typeParam ->
newSimpleValueParameter( newSimpleValueParameter(
session, session,
kSerializerClassId.constructClassLikeType(arrayOf(typeParam.toConeType()), false).newRef(), kSerializerClassId.constructClassLikeType(arrayOf(typeParam.toConeType()), false).toFirResolvedTypeRef(),
Name.identifier("${SerialEntityNames.typeArgPrefix}$i") Name.identifier("${SerialEntityNames.typeArgPrefix}$i")
) )
}) })
@@ -311,7 +308,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
isNullable = false isNullable = false
) )
), isNullable = false ), isNullable = false
).newRef() ).toFirResolvedTypeRef()
} }
return serializerFirClass.symbol return serializerFirClass.symbol
} }