Skip to content

Commit 53806e8

Browse files
committed
Fix IR object generation
1 parent 7cc36c4 commit 53806e8

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

kotlin-plugin/src/main/kotlin/me/shika/generation/ObjectSerializationIRGeneration.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package me.shika.generation
22

33
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
44
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
5+
import org.jetbrains.kotlin.backend.common.ir.copyTo
56
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
67
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
7-
import org.jetbrains.kotlin.descriptors.Visibilities
88
import org.jetbrains.kotlin.ir.IrElement
99
import org.jetbrains.kotlin.ir.builders.declarations.addFunction
1010
import org.jetbrains.kotlin.ir.builders.irBlockBody
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
1616
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
1717
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
1818
import org.jetbrains.kotlin.ir.visitors.acceptVoid
19-
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
2019

2120
private object ObjectSerializationOrigin : IrDeclarationOriginImpl("object-serialization-fix", isSynthetic = true)
2221

@@ -40,6 +39,9 @@ class ObjectSerializationIrGeneration : IrGenerationExtension {
4039
visibility = DescriptorVisibilities.PUBLIC
4140
origin = ObjectSerializationOrigin
4241
}.also { function ->
42+
// Ensure it is not static
43+
function.dispatchReceiverParameter = cls.thisReceiver?.copyTo(function)
44+
4345
function.body = DeclarationIrBuilder(context, function.symbol, function.startOffset, function.endOffset)
4446
.irBlockBody {
4547
+irReturn(irGetObject(cls.symbol))

0 commit comments

Comments
 (0)