MoshiX
MoshiX copied to clipboard
Extensions for Moshi including IR plugins, moshi-sealed, and more.
Saw https://github.com/slackhq/circuit/runs/7796873708?check_suite_focus=true#step:7:194 today ``` e: java.io.IOException: Stream Closed at java.base/java.io.FileOutputStream.writeBytes(Native Method) at java.base/java.io.FileOutputStream.write(FileOutputStream.java:349) at java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:234) at java.base/sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:340) at java.base/sun.nio.cs.StreamEncoder.close(StreamEncoder.java:169) at java.base/java.io.OutputStreamWriter.close(OutputStreamWriter.java:252) at java.base/java.io.BufferedWriter.close(BufferedWriter.java:269) at kotlin.io.CloseableKt.closeFinally(Closeable.kt:57) at dev.zacsweers.moshix.ir.compiler.proguardgen.ProguardRuleGenerationExtension.doAnalysis(ProguardRuleGenerationExtension.kt:105) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:123) at...
A `@TypeLabel` string of `null` could allow for a fallback class to use if no type label was found. This would be especially helpful for deserializing JSON from classes that...
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.vanniktech.maven.publish](https://togithub.com/vanniktech/gradle-maven-publish-plugin) | `0.20.0` -> `0.21.0` | [](https://docs.renovatebot.com/merge-confidence/)...
This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.[View this repository on the Mend.io Web Portal](https://developer.mend.io/github/ZacSweers/MoshiX). ## Config Migration Needed - [ ]...
``` e: java.lang.NoSuchMethodError: 'org.jetbrains.kotlin.ir.declarations.IrValueParameter org.jetbrains.kotlin.ir.builders.declarations.DeclarationBuildersKt.addExtensionReceiver$default(org.jetbrains.kotlin.ir.declarations.IrSimpleFunction, org.jetbrains.kotlin.ir.types.IrType, org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin, int, java.lang.Object)' at dev.zacsweers.moshix.ir.compiler.MoshiSymbols.(MoshiSymbols.kt:319) at dev.zacsweers.moshix.ir.compiler.MoshiIrVisitor$moshiSymbols$2.invoke(MoshiIrVisitor.kt:56) at dev.zacsweers.moshix.ir.compiler.MoshiIrVisitor$moshiSymbols$2.invoke(MoshiIrVisitor.kt:55) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at dev.zacsweers.moshix.ir.compiler.MoshiIrVisitor.getMoshiSymbols(MoshiIrVisitor.kt:55) at dev.zacsweers.moshix.ir.compiler.MoshiIrVisitor.adapterGenerator(MoshiIrVisitor.kt:101) at dev.zacsweers.moshix.ir.compiler.MoshiIrVisitor.visitClassNew(MoshiIrVisitor.kt:133) at org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext.visitClass(IrElementTransformerVoidWithContext.kt:62) ```
Resolves #315
Moshi's polymorphic adapter works just for the tag pattern, but another common one is the tag + payload pattern (Reddit and GitHub both do this). ```json { "type": "someType", "payload":...
Mirroring https://github.com/square/moshi/issues/1170 We should probably try to match how kotlinx-serialization treats them: https://youtrack.jetbrains.com/issue/KT-28791
Makes it easy to test and switch between them.