Repository navigation
chore(api): stop tracking compiler-generated lambda holders and an internal-only expect fun - #54
Merged
Merged
Conversation
…ternal-only expect fun The JVM API dumps tracked nine ComposableSingletons$<File>Kt classes across five modules. The Compose compiler hoists capture-free composable lambdas into these holders. Their getters are internal (module-mangled names), but the IR-generated class has no Kotlin metadata, so the JVM dump read it as public. The klib dumps already omitted it. A getter key re-hashes when the call that owns the lambda changes (adding readOnly to an OutlinedTextField did it), which failed apiCheck with no real API change. The holders are now listed in apiValidation.ignoredClasses. BCV 0.18.2 matches only exact names, and KGP's glob-capable abiValidation is still experimental, so each holder is listed and the rule for adding new ones is in CLAUDE.md and CONTRIBUTING.md. Excluding them is safe while no public inline function takes a composable lambda. getPlatformLogWriters and its actuals are now internal. Its only caller is LoggingModule in the same module. The dumps change only by removal: the nine holders, plus getPlatformLogWriters from jvm/common.api and common.klib.api. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Code Coverage
|
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.
Two API dump tidy-ups. The dumps only lose lines, and no real public API changes.
Changes
ComposableSingletonsholders: added toapiValidation.ignoredClassesin the rootbuild.gradle.kts. That covers 9 classes in 5 modules:core:navigation,core:ui,desktopApp,feature:posting:implandfeature:settings:impl.readOnlyto anOutlinedTextFieldin fix(posting): lock the narrative field while a save is in flight #51 did that, andapiCheckfailed with no real API change.abiValidationsupports globs but is still@ExperimentalAbiValidation.CLAUDE.mdandCONTRIBUTING.md. If a new holder shows up in a dump diff, add it to the list instead of committing it.inline funtook a composable lambda. None does.getPlatformLogWriters: theexpectand its Android, iOS and JVM actuals are nowinternal. Its only caller isLoggingModulein the same module.Verification
getPlatformLogWritersfromjvm/common.apiandcommon.klib.api.readOnly =argument puts thePostingEditScreenlambda key back to its pre-fix(posting): lock the narrative field while a save is in flight #51 value, andjvmApiCheckstays green../gradlew checkpasses on top of test: make tests that could never fail actually guard their code #53.🤖 Generated with Claude Code