Poko icon indicating copy to clipboard operation
Poko copied to clipboard

Kotlin 2.0.20 support

Open JakeWharton opened this issue 1 year ago • 7 comments

Seems broken with 2.0.20-Beta1:

  • https://github.com/JakeWharton/mosaic/actions/runs/9568310059/job/26378211734?pr=404
  • https://github.com/cashapp/redwood/actions/runs/9568324485/job/26378266129?pr=2126
e: java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl.<init>(org.jetbrains.kotlin.descriptors.ParameterDescriptor)'
	at dev.drewhamilton.poko.ir.PokoMembersTransformer.mutateWithNewDispatchReceiverParameterForParentClass(PokoMembersTransformer.kt:158)
	at dev.drewhamilton.poko.ir.PokoMembersTransformer.visitFunctionNew(PokoMembersTransformer.kt:204)
	at org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext.visitFunction(IrElementTransformerVoidWithContext.kt:83)
	at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitSimpleFunction(IrElementTransformerVoid.kt:128)
	at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitSimpleFunction(IrElementTransformerVoid.kt:131)
	at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitSimpleFunction(IrElementTransformerVoid.kt:19)
	at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:36)
	at org.jetbrains.kotlin.ir.IrElementBase.transform(IrElementBase.kt:24)

JakeWharton avatar Jun 18 '24 16:06 JakeWharton

I'll open a draft PR. Do you need Poko beta versions tracking the Kotlin beta versions? And/or snapshots?

drewhamilton avatar Jun 18 '24 16:06 drewhamilton

Eh, I mean not really. I/we are supposed to be testing the EAP versions since we (Cash) are part of the EAP champions. I would be fine with snapshots, especially if we can do it in a way that can be landed on main, such as through reflection. Needing to publish separately solely for the betas almost seems like too much work.

JakeWharton avatar Jun 18 '24 16:06 JakeWharton

Reopening because #364 is still failing 🤔

drewhamilton avatar Jun 19 '24 00:06 drewhamilton

Caused by: java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.gradle.targets.js.ir.DefaultIncrementalSyncTask.setDuplicatesStrategy(org.gradle.api.file.DuplicatesStrategy)'

Seems like maybe a compiler bug because this line calls setDuplicatesStrategy on the CopySpec interface? Curious whether this affects Redwood or Mosaic using the SNAPSHOT, or whether it's specific to the sample.

drewhamilton avatar Jun 19 '24 02:06 drewhamilton

Is the snapshot updated? I can try it out.

JakeWharton avatar Jun 19 '24 13:06 JakeWharton

🟢 https://github.com/JakeWharton/mosaic/pull/404

JakeWharton avatar Jun 19 '24 14:06 JakeWharton

Redwood seems good, too, but still red with other problems

JakeWharton avatar Jun 19 '24 14:06 JakeWharton

Kotlin 2.0.20-Beta2 introduces more breaking changes.

java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl.<init>(int, int, org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin, org.jetbrains.kotlin.ir.symbols.IrVariableSymbol, org.jetbrains.kotlin.name.Name, org.jetbrains.kotlin.ir.types.IrType, boolean, boolean, boolean)'
	at dev.drewhamilton.poko.ir.HashCodeGenerationKt.generateHashCodeMethodBody(hashCodeGeneration.kt:75)
	at dev.drewhamilton.poko.ir.PokoMembersTransformer.visitFunctionNew(PokoMembersTransformer.kt:54)

lupuuss avatar Jul 10 '24 17:07 lupuuss

@lupuuss Thanks, fixed in the latest snapshot

drewhamilton avatar Jul 11 '24 16:07 drewhamilton

Released as 0.17

JakeWharton avatar Aug 27 '24 13:08 JakeWharton