ShikaSD / kotlin-object-serialization-fix

Java serialization fix for Kotlin object
MIT License
22 stars 2 forks source link

The compiler plugin no longer works with Kotlin 1.6.0 #4

Closed tianyu closed 2 years ago

tianyu commented 2 years ago

Here's the stacktrace:

java.lang.NoSuchMethodError: org.jetbrains.kotlin.backend.common.extensions.IrPluginContext.getIrBuiltIns()Lorg/jetbrains/kotlin/ir/descriptors/IrBuiltIns;
    at me.shika.generation.ObjectSerializationIrGeneration.fixSerializable(ObjectSerializationIRGeneration.kt:38)
    at me.shika.generation.ObjectSerializationIrGeneration.access$fixSerializable(ObjectSerializationIRGeneration.kt:22)
    at me.shika.generation.ObjectSerializationIrGeneration$generate$1.invoke(ObjectSerializationIRGeneration.kt:28)
    at me.shika.generation.ObjectSerializationIrGeneration$generate$1.invoke(ObjectSerializationIRGeneration.kt:26)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitClass(ObjectSerializationIRGeneration.kt:60)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitClass(IrElementVisitorVoid.kt:44)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitClass(ObjectSerializationIRGeneration.kt:53)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitClass(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:55)
    at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.acceptChildren(IrFileImpl.kt:84)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptChildrenVoid(IrElementVisitorVoid.kt:275)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitElement(ObjectSerializationIRGeneration.kt:55)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitPackageFragment(IrElementVisitorVoid.kt:30)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitPackageFragment(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:37)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitFile(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:38)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitFile(ObjectSerializationIRGeneration.kt:53)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitFile(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.accept(IrFileImpl.kt:81)
    at org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl.acceptChildren(IrModuleFragmentImpl.kt:40)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptChildrenVoid(IrElementVisitorVoid.kt:275)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitElement(ObjectSerializationIRGeneration.kt:55)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:27)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitModuleFragment(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:28)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitModuleFragment(ObjectSerializationIRGeneration.kt:53)
    at me.shika.generation.ObjectSerializationIrGeneration$recursiveIrClassVisitor$1.visitModuleFragment(ObjectSerializationIRGeneration.kt:53)
    at org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl.accept(IrModuleFragmentImpl.kt:37)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptVoid(IrElementVisitorVoid.kt:271)
    at me.shika.generation.ObjectSerializationIrGeneration.generate(ObjectSerializationIRGeneration.kt:25)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr$lambda-1(JvmIrCodegenFactory.kt:121)
    at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:88)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr(JvmIrCodegenFactory.kt:146)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.convertToIr$default(JvmIrCodegenFactory.kt:64)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:59)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:331)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:123)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:58)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:434)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:120)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:357)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:299)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl$rebuild(IncrementalCompilerRunner.kt:118)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:169)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:80)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:622)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:100)
tianyu commented 2 years ago

I'm putting up an attempted fix in #5

ShikaSD commented 2 years ago

Fixed by #5