Use correct class type when creating class references
(for e.g. PolymorphicSerializer) Former class reference may had type arguments in it, which lead to bugs in JS IR. Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1072
This commit is contained in:
+4
-5
@@ -429,14 +429,13 @@ interface IrBuilderExtension {
|
|||||||
|
|
||||||
fun createClassReference(classType: KotlinType, startOffset: Int, endOffset: Int): IrClassReference {
|
fun createClassReference(classType: KotlinType, startOffset: Int, endOffset: Int): IrClassReference {
|
||||||
val clazz = classType.toClassDescriptor!!
|
val clazz = classType.toClassDescriptor!!
|
||||||
val returnType =
|
val classSymbol = compilerContext.referenceClass(clazz.fqNameSafe) ?: error("Couldn't load class $clazz")
|
||||||
kClassTypeFor(TypeProjectionImpl(Variance.INVARIANT, classType))
|
|
||||||
return IrClassReferenceImpl(
|
return IrClassReferenceImpl(
|
||||||
startOffset,
|
startOffset,
|
||||||
endOffset,
|
endOffset,
|
||||||
returnType.toIrType(),
|
compilerContext.irBuiltIns.kClassClass.starProjectedType,
|
||||||
compilerContext.referenceClass(clazz.fqNameSafe) ?: error("Couldn't load class $clazz"),
|
classSymbol,
|
||||||
classType.toIrType()
|
classSymbol.starProjectedType
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user