Skip to content

0.9.3

Choose a tag to compare

@ZacSweers ZacSweers released this 02 Jan 08:01
· 1200 commits to main since this release

Happy new year!

Enhancements

  • [FIR] Add diagnostic for multiple graph-like annotations on a single declaration.
  • [IR] Stub @Binds expressions 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 MethodTooLargeException errors in the JVM.
  • [IR] Detect suspicious member injections from inherited inject functions too.
  • [IR] Don't try to validate graphs if QualifierOverrideMismatch errors were reported prior to graph validation. This helps reduce noise in failure cases, as it would otherwise also likely report MissingBinding errors caused by the source of the QualifierOverrideMismatch error.

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 @Provides functions mistakenly unwrapping the Provider value type.
  • [FIR] Disallow star projections in @ElementsIntoSet binding types.
  • [FIR] Require exactly one generic type argument @ElementsIntoSet binding 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_FUNCTION diagnostic to be a warning instead of an error.
  • Remove testing of 2.3.0 pre-releases. IntelliJ stable currently builds off Kotlin 2.3.2x and Android Studio stable currently points to Kotlin 2.2.2x.

Contributors

Special thanks to the following contributors for contributing to this release!

What's Changed

Full Changelog: 0.9.2...0.9.3