0.3.1
- Enhancement: Rewrite graph resolution using topological sorting to vastly improve performance and simplify generation.
- Enhancement: Return early once an externally-compiled dependency graph is found.
- Enhancement: Simplify multibinding contributor handling in graph resolution by generating synthetic qualifiers for each of them. This allows them to participate in standard graph resolution.
- Enhancement: When there are multiple empty
@Multibindserrors, report them all at once. - Enhancement: Avoid unnecessary
StringBuilderallocations. - Fix: Don't transform
@Providesfunction's to be private if its visibility is already explicitly defined. - Fix: Fix a comparator infinite loop vector.
- Fix: Fix
@ElementsIntoSetmultibinding contributions triggering a dependency cycle in some situations. - Fix: Fix assertion error for generated multibinding name hint when using both @Multibinds and @ElementsIntoSet for the same multibinding.
- Fix: Fix contributed graph extensions not inheriting empty declared multibindings.
- Fix: Ensure we report the
@Multibindsdeclaration location in errors if one is available. - Fix: Dedupe overrides by all parameters not just value parameters.
- Fix: Dedupe overrides by signature rather than name when generating contributed graphs.
- Fix: Fix accidentally adding contributed graphs as child elements of parent graphs twice.
- Fix: Fix not deep copying
extensionReceiverParameterwhen implementing fake overrides in contributed graphs. - Fix: Report fully qualified qualifier renderings in diagnostics.
- Fix: Don't generate provider fields for multibinding elements unnecessarily.
- When debug logging + reports dir is enabled, output a
logTrace.txtto the reports dir for tracing data. - Update to Kotlin
2.1.21.
Special thanks to @asapha, @gabrielittner, @jzbrooks, and @JoelWilcox for contributing to this release!
What's Changed
- Update dependency dev.zacsweers.kctfork:ksp to v0.7.1 by @renovate in #397
- Update ktor monorepo to v3.1.3 by @renovate in #395
- Don't transform provides status if visibility is explicitly defined by @ZacSweers in #398
- Update plugin buildConfig to v5.6.5 by @renovate in #400
- Fix comparator infitine loop vector by @ZacSweers in #402
- Update compose.jb to v1.8.0 by @renovate in #401
- Update agp to v8.10.0 by @renovate in #405
- Update dependency com.google.googlejavaformat:google-java-format to v1.27.0 by @renovate in #406
- Fix @ElementsIntoSet multibinding contributions triggering a dependency cycle in some situations by @JoelWilcox in #408
- Add more timing logging by @ZacSweers in #404
- Update dependency androidx.compose.material:material-navigation to v1.8.1 by @renovate in #412
- Update dependency androidx.navigation:navigation-compose to v2.9.0 by @renovate in #411
- Update dependency androidx.lifecycle:lifecycle-runtime-compose to v2.9.0 - autoclosed by @renovate in #409
- Update dependency androidx.lifecycle:lifecycle-viewmodel-ktx to v2.9.0 by @renovate in #410
- Revert "Update agp to v8.10.0" by @ZacSweers in #413
- Fix a couple multibinding errors by @JoelWilcox in #419
- Update dependency click to v8.2.0 by @renovate in #421
- Update dependency mkdocs-material to v9.6.13 by @renovate in #420
- Update kotlinInject.anvil to v0.1.5 by @renovate in #416
- Binding graph v3: tarjan's algorithm + topological sorting by @ZacSweers in #423
- Add a failing test for SingleIn when combining Provider and multibindings by @asapha in #403
- Avoid unnecessary StringBuilder allocations by @jzbrooks in #422
- Tweak binding rendering by @ZacSweers in #425
- Update dependency mkdocs-material to v9.6.14 by @renovate in #428
- Update kotlin monorepo to v2.1.21 by @renovate in #427
- Update circuit to v0.28.0 by @renovate in #426
- Several small ContributesGraphExtension fixes! by @asapha in #399
- Improve sorting determinism by @ZacSweers in #433
- Update dependency com.google.devtools.ksp to v2.1.21-2.0.1 by @renovate in #434
- Add more tests for implicit return types by @ZacSweers in #435
New Contributors
Full Changelog: 0.3.0...0.3.1