0.9.3
Happy new year!
Enhancements
- [FIR] Add diagnostic for multiple graph-like annotations on a single declaration.
- [IR] Stub
@Bindsexpressions in origin points rather than graphs. This reduces unnecessary extra generated functions. - [IR] Generate reusable getters for scalar-only dependencies that are used multiple times. This helps avoid
MethodTooLargeExceptionerrors in the JVM. - [IR] Detect suspicious member injections from inherited inject functions too.
- [IR] Don't try to validate graphs if
QualifierOverrideMismatcherrors were reported prior to graph validation. This helps reduce noise in failure cases, as it would otherwise also likely reportMissingBindingerrors caused by the source of theQualifierOverrideMismatcherror.
Fixes
- [FIR, Anvil Interop] Fix rank-based binding replacements getting dropped for multi-contribution classes in root graphs when contributions are from external modules.
- [FIR] Named annotation arguments in different order from declared parameters getting silently skipped.
- [FIR] Fix
Map<K, Provider<V>>parameters to@Providesfunctions mistakenly unwrapping the Provider value type. - [FIR] Disallow star projections in
@ElementsIntoSetbinding types. - [FIR] Require exactly one generic type argument
@ElementsIntoSetbinding types. - [IR, Anvil Interop] Fix rank-based binding replacements getting dropped for multi-contribution classes in graph extensions when contributions are from external modules.
- [IR] Prohibit duplicate map keys.
- [IR] Fix propagation of scoped multibinding sources to graph extensions.
- [IR] Don't eagerly validate duplicate bindings (only report them if used).
- [IC] Fix member injection metadata not always being written and causing IC issues with member inject function transformation.
- [Gradle] Report all tested Kotlin versions when emitting compatibility warnings.
Changes
- [FIR] Change
SUSPICIOUS_MEMBER_INJECT_FUNCTIONdiagnostic to be a warning instead of an error. - Remove testing of 2.3.0 pre-releases. IntelliJ stable currently builds off Kotlin
2.3.2xand Android Studio stable currently points to Kotlin2.2.2x.
Contributors
Special thanks to the following contributors for contributing to this release!
What's Changed
- Add multiplatform benchmark + regression benchmarks by @ZacSweers in #1553
- Update actions/setup-node action to v6 by @renovate[bot] in #1567
- Update actions/github-script action to v8 by @renovate[bot] in #1566
- Fan in brenchmark regression publishing by @ZacSweers in #1568
- Update dependency node to v24 by @renovate[bot] in #1569
- Update actions/download-artifact action to v7 by @renovate[bot] in #1570
- Extract repeatableAnnotationsIn() IR helper by @ZacSweers in #1573
- Only apply repeatable workaround in JVM platforms by @ZacSweers in #1574
- Add double-graph-like annotation diagnostic by @ZacSweers in #1575
- Simplify scenarios, add noop/vanilla, cleanups by @ZacSweers in #1576
- Update plugin buildConfig to v6.0.7 by @renovate[bot] in #1579
- Fix rank-based binding replacements getting dropped for multi-contribution classes in root graphs by @JoelWilcox in #1583
- More benchmark work by @ZacSweers in #1581
- Introduce
@ComptimeOnly+ stub binds in origin by @ZacSweers in #1582 - Move accesors to be contributed by @ZacSweers in #1585
- Add binary metrics + limit scenarios tested by @ZacSweers in #1586
- Fix bug preventing scope argument from being used in position other than first by @japplin in #1589
- Fix rank-based binding replacements getting dropped for multi-contribution classes in graph extensions by @JoelWilcox in #1584
- Fix duplicate map key checking by @ZacSweers in #1591
- Clean up tested versions by @ZacSweers in #1592
- Clarify error by @ZacSweers in #1593
- Fix reported aliases in gradle warnings by @ZacSweers in #1595
- Fix propagation of parent scoped multibindings to extensions by @ZacSweers in #1600
- Exclude jars-9 and transforms-3 caches by @ZacSweers in #1599
- Update dependency termcolor to v3.3.0 by @renovate[bot] in #1597
- Fix map providers in provides params by @ZacSweers in #1601
- Generate reusable getters for reused non-simple scalar bindings by @ZacSweers in #1602
- Update dependency com.facebook:ktfmt to v0.61 by @renovate[bot] in #1605
- Reconstruct type key for multibindings by @vRallev in #1603
- Ignore unused duplicate bindings by @vRallev in #1604
- Detect suspicious member injects in IR too by @ZacSweers in #1610
- Update dependency pymdown-extensions to v10.20 by @renovate[bot] in #1608
- Fix member injection metadata not always being written by @ZacSweers in #1611
Full Changelog: 0.9.2...0.9.3