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 {
|
||||
val clazz = classType.toClassDescriptor!!
|
||||
val returnType =
|
||||
kClassTypeFor(TypeProjectionImpl(Variance.INVARIANT, classType))
|
||||
val classSymbol = compilerContext.referenceClass(clazz.fqNameSafe) ?: error("Couldn't load class $clazz")
|
||||
return IrClassReferenceImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
returnType.toIrType(),
|
||||
compilerContext.referenceClass(clazz.fqNameSafe) ?: error("Couldn't load class $clazz"),
|
||||
classType.toIrType()
|
||||
compilerContext.irBuiltIns.kClassClass.starProjectedType,
|
||||
classSymbol,
|
||||
classSymbol.starProjectedType
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user