Excluding local classes created by Parcelize#300
Merged
Conversation
In some rare cases, JVM accepts not to specify method name (passing to `outerMethod`) in `EnclosingMethod` attribute, only class name. It's relevant for cases if local class is enclosed in an instance initializer, static initializer, instance variable initializer, or class variable initializer (see https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.7) Normally Kotlin compiler always fills method name but kotlin-parcelize can generate different instructions because it is a compiler plugin. Fixes #112
fzhinkin
requested changes
Jun 12, 2025
Collaborator
fzhinkin
left a comment
There was a problem hiding this comment.
Nice! I have just a few minor comments.
Collaborator
There was a problem hiding this comment.
It seems like this class could be removed safely, for test purposes it's enough to have only the $Creator one.
Co-authored-by: Filipp Zhinkin <filipp.zhinkin@jetbrains.com>
fzhinkin
approved these changes
Jun 13, 2025
svc-squareup-copybara
pushed a commit
to cashapp/misk
that referenced
this pull request
Jun 26, 2025
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.58.2` -> `2.59.0` | | [com.google.api:gax](https://github.com/googleapis/sdk-platform-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.67.2` -> `2.68.0` | | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.38.0` -> `2.39.0` | | [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `0.17.0` -> `0.18.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.18.0` -> `2.19.0` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.69` -> `2.31.70` | --- ### Release Notes <details> <summary>googleapis/sdk-platform-java (com.google.api.grpc:proto-google-common-protos)</summary> ### [`v2.59.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2590-2025-06-02) ##### Features - add logic to set universe domain to ServiceAccountJwtAccessCredentials ([#​3806](googleapis/sdk-platform-java#3806)) ([5b45708](googleapis/sdk-platform-java@5b45708)) - use debian base image for `java-library-generation` ([#​3817](googleapis/sdk-platform-java#3817)) ([94d0b30](googleapis/sdk-platform-java@94d0b30)) ##### Bug Fixes - manage graalvm image versions via Hermetic Build templates *only* ([#​3800](googleapis/sdk-platform-java#3800)) ([244c5dc](googleapis/sdk-platform-java@244c5dc)) ##### Dependencies - update dependency com.google.oauth-client:google-oauth-client-bom to v1.39.0 ([#​3813](googleapis/sdk-platform-java#3813)) ([196a7ca](googleapis/sdk-platform-java@196a7ca)) - update google api dependencies ([#​3791](googleapis/sdk-platform-java#3791)) ([45ef2e0](googleapis/sdk-platform-java@45ef2e0)) - update google auth library dependencies to v1.36.0 ([#​3814](googleapis/sdk-platform-java#3814)) ([07f834a](googleapis/sdk-platform-java@07f834a)) - update grpc dependencies to 1.71.0 ([#​3807](googleapis/sdk-platform-java#3807)) ([49a7ae5](googleapis/sdk-platform-java@49a7ae5)) - Upgrade Protobuf-Java to v3.25.8 ([#​3810](googleapis/sdk-platform-java#3810)) ([ab90662](googleapis/sdk-platform-java@ab90662)) </details> <details> <summary>google/error-prone (com.google.errorprone:error_prone_annotations)</summary> ### [`v2.39.0`](https://github.com/google/error-prone/releases/tag/v2.39.0): Error Prone 2.39.0 Changes: - Temporarily downgrade to Guava 33.4.0 ([#​5108](google/error-prone#5108)) Checks: - [`BooleanLiteral`](https://errorprone.info/bugpattern/BooleanLiteral): Prefer `true` to `Boolean.TRUE` - [`ExpensiveLenientFormatString`](https://errorprone.info/bugpattern/ExpensiveLenientFormatString): Renamed from `PreconditionsExpensiveString`, detects unnecessary calls to `String.format` in the arguments of lenient formatting methods. - [`UnnecessaryQualifier`](https://errorprone.info/bugpattern/UnnecessaryQualifier): Detects `@Qualifier` or `@BindingAnnotation` annotations that have no effect, and can be removed Issues: [#​4996](google/error-prone#4996), [#​5045](google/error-prone#5045) Full changelog: google/error-prone@v2.38.0...v2.39.0 </details> <details> <summary>Kotlin/binary-compatibility-validator (org.jetbrains.kotlinx.binary-compatibility-validator)</summary> ### [`v0.18.0`](https://github.com/Kotlin/binary-compatibility-validator/releases/tag/0.18.0) [Compare Source](Kotlin/binary-compatibility-validator@0.17.0...0.18.0) #### What's Changed - Supported KLIB cross compilation enabled in Kotlin 2.1.0 [#​299](Kotlin/binary-compatibility-validator#299) - Fixed issue with early properties evaluation [#​286](Kotlin/binary-compatibility-validator#286) - Started excluding local classes created by Parcelize [#​300](Kotlin/binary-compatibility-validator#300) Thanks to [@​TheMrMilchmann](https://github.com/TheMrMilchmann), [@​osipxd](https://github.com/osipxd), and [@​Goooler](https://github.com/Goooler) for their contributions! </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.19.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2190) - \[Feat]: support advices for Android test fixtures source sets - \[Feat]: support typesafe project accessors in IssueHandler - \[Fix]: bump kotlin-metadata-jvm to 2.1.21 to support K2.2 projects. - \[Chore]: move publishing to new `central.sonatype.com` repo. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: d85db8eca9307834b88f72100e0026a94e3b4aa2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In some rare cases, JVM accepts not to specify method name (passing to
outerMethod) inEnclosingMethodattribute, only class name. It's relevant for cases if local class is enclosed in an instance initializer, static initializer, instance variable initializer, or class variable initializer (see https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.7)Normally Kotlin compiler always fills method name but kotlin-parcelize can generate different instructions because it is a compiler plugin.
Fixes #112