diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt index cd794d993c4..3a9830415e3 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt @@ -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 diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt index 81868dd62c5..c1e346fe51d 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt @@ -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 }