@@ -2,9 +2,9 @@ package me.shika.generation
2
2
3
3
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
4
4
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
5
+ import org.jetbrains.kotlin.backend.common.ir.copyTo
5
6
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
6
7
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
7
- import org.jetbrains.kotlin.descriptors.Visibilities
8
8
import org.jetbrains.kotlin.ir.IrElement
9
9
import org.jetbrains.kotlin.ir.builders.declarations.addFunction
10
10
import org.jetbrains.kotlin.ir.builders.irBlockBody
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
16
16
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
17
17
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
18
18
import org.jetbrains.kotlin.ir.visitors.acceptVoid
19
- import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
20
19
21
20
private object ObjectSerializationOrigin : IrDeclarationOriginImpl(" object-serialization-fix" , isSynthetic = true )
22
21
@@ -40,6 +39,9 @@ class ObjectSerializationIrGeneration : IrGenerationExtension {
40
39
visibility = DescriptorVisibilities .PUBLIC
41
40
origin = ObjectSerializationOrigin
42
41
}.also { function ->
42
+ // Ensure it is not static
43
+ function.dispatchReceiverParameter = cls.thisReceiver?.copyTo(function)
44
+
43
45
function.body = DeclarationIrBuilder (context, function.symbol, function.startOffset, function.endOffset)
44
46
.irBlockBody {
45
47
+ irReturn(irGetObject(cls.symbol))
0 commit comments