Skip to content

build(deps): bump dev.zacsweers.metro from 1.4.0 to 1.4.3 - #349

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/gradle/dev.zacsweers.metro-1.4.3
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/gradle/dev.zacsweers.metro-1.4.3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bumps dev.zacsweers.metro from 1.4.0 to 1.4.3.

Release notes

Sourced from dev.zacsweers.metro's releases.

1.4.3

Enhancements

  • [FIR] Warn when a @ContributesTo interface only exposes bindings and recommend making it a binding container with @BindingContainer. The latter is preferable as it reduces generated code.
  • [FIR] Warn about array class literals in qualifiers, map keys, and scopes that kotlinc can confuse across modules. For example, Array<IntArray>::class can be read as IntArray::class.
  • [FIR/IR] Support priority on @ContributesBinding and @ContributesIntoMap, allowing higher-priority contributions to replace conflicting bindings or map entries without directly referencing the lower-priority implementation.
  • [IR] Reuse completed member-injector lookups for classes without injectable members.
  • [IR] Support suspend providers with switching providers.
  • [IR] Avoid revisiting shared supertypes when resolving generic bindings through diamond inheritance.
  • [IR] Reduce per-entry memory overhead in more long-lived graph and contribution caches by using scatter maps.
  • [IR] Reduce repeated work when validating suspend multibindings and reporting suspend-binding errors. Error traces now use cached, deterministic shortest paths to a suspend binding.
  • [IR] Reduce repeated dependency scans when checking cycles in graphs with large multibindings.
  • [IR] Avoid initializing the rich terminal renderer for plain compiler diagnostics.
  • [IR/interop] Support Hilt interop when IR class generation is enabled.
  • [Reports] Explain binding choices in graph reports. Includes things like selection precedence, contribution filtering, and parent-graph ownership.
  • [Reports] Count emitted provider inlines in graph reports.
  • [Reports] Report when deferred access or unavailable values prevent provider inlining.

Fixes

  • [FIR] Fix a compiler crash when using typealiases as contribution scopes.
  • [FIR] Fix a compiler crash on zero-parameter member-injection functions.
  • [FIR] Fix graphs accidentally implementing binding-container interfaces when contributions use different scopes. Basically, checking another scope won't turn a container that supplies bindings into an interface the graph implements.
  • [FIR] Keep contributed graph accessors when their replacement or its origin is excluded.
  • [FIR] Avoid annotation-cache races during concurrent IDE analysis.
  • [FIR] Fix assisted factories whose return types nest or reorder factory type parameters.
  • [FIR/IR/interop] Fix recognition of @get:BindsOptionalOf properties when Dagger interop is enabled.
  • [IR] Keep dynamic graph arguments aligned when container order changes.
  • [IR] Prevent dynamic graph class name collisions when a generic binding container is used with different type arguments. Basically, graphs using Bindings<Int> and Bindings<Long> can coexist in the same file.
  • [IR] Avoid generated dynamic graph name collisions across sibling files.
  • [IR] Keep all transitively included binding containers when multiple graphs enter the same include cycle from different containers. Basically, improve compiler caching when containers are used in multiple graphs.
  • [IR] Resolve graph extension bindings before running parallel graph analysis. This keeps compiler lookups and cache writes on one thread, including for nested extensions and bindings loaded from dependencies.
  • [IR] Report required dependencies when an earlier parameter has a default value for the same missing type.
  • [IR] Fix a runtime crash when an assisted-injected class with no assisted parameters is used across modules with IR class generation.
  • [IR] Restore primitive and string inline provider values from dependency metadata.
  • [IR] Report an error when an assisted-injected constructor requests a set or eager map backed by suspend providers. Basically, assisted factories now get the same suspend-multibinding checks as ordinary injection.
  • [IR] Fix a compiler crash when reading @Binds declarations from generic binding containers.
  • [IR] Fix @Binds resolution when multiple graphs use the same generic binding container with different type arguments. Each graph now resolves bindings using its own container's type arguments.
  • [IR] Fix missing bindings for internal contributed objects across modules when generateContributionProviders, generateClassesInIr, and contributesAsInject are enabled together.
  • [IR] Report duplicate map keys when different key annotations unwrap to the same value, including implicit class keys.
  • [IR] Apply contribution replacements only in the scopes that declare them.
  • [IR] Report missing required graph bindings even when an @OptionalBinding accessor requests the same type, regardless of declaration order.
  • [IR] Compare annotation values structurally so hash collisions don't merge distinct bindings.
  • [IR] Preserve JVM array component types and dimensions in source class-literal qualifiers.
  • [IR] Resolve JVM binary annotation defaults on Kotlin 2.3.0 and 2.3.10.
  • [IR/interop] Fix Class-keyed maps wrapped in providers or lazy values when KClass/Class interop is enabled.
  • [IR/interop] Fix a runtime ClassCastException when a Class-keyed map is injected into a provider-created class across modules with KClass/Class interop enabled.
  • [IR/interop] Respect @GraphPrivate on Dagger @BindsOptionalOf declarations inherited by graph extensions, while preserving public declarations for the same key.
  • [IR/interop] Preserve Kotlin nullability in member-injection metadata when Dagger interop is enabled.

... (truncated)

Changelog

Sourced from dev.zacsweers.metro's changelog.

1.4.3

Fixes

  • [FIR] Avoid duplicate BindsMirror constructor generation across FIR generators.

2026-09-08

Enhancements

  • [FIR] Warn when a @ContributesTo interface only exposes bindings and recommend making it a binding container with @BindingContainer. The latter is preferable as it reduces generated code.
  • [FIR] Warn about array class literals in qualifiers, map keys, and scopes that kotlinc can confuse across modules. For example, Array<IntArray>::class can be read as IntArray::class.
  • [FIR/IR] Support priority on @ContributesBinding and @ContributesIntoMap, allowing higher-priority contributions to replace conflicting bindings or map entries without directly referencing the lower-priority implementation.
  • [IR] Reuse completed member-injector lookups for classes without injectable members.
  • [IR] Support suspend providers with switching providers.
  • [IR] Avoid revisiting shared supertypes when resolving generic bindings through diamond inheritance.
  • [IR] Reduce per-entry memory overhead in more long-lived graph and contribution caches by using scatter maps.
  • [IR] Reduce repeated work when validating suspend multibindings and reporting suspend-binding errors. Error traces now use cached, deterministic shortest paths to a suspend binding.
  • [IR] Reduce repeated dependency scans when checking cycles in graphs with large multibindings.
  • [IR] Avoid initializing the rich terminal renderer for plain compiler diagnostics.
  • [IR/interop] Support Hilt interop when IR class generation is enabled.
  • [Reports] Explain binding choices in graph reports. Includes things like selection precedence, contribution filtering, and parent-graph ownership.
  • [Reports] Count emitted provider inlines in graph reports.
  • [Reports] Report when deferred access or unavailable values prevent provider inlining.

Fixes

  • [FIR] Fix a compiler crash when using typealiases as contribution scopes.
  • [FIR] Fix a compiler crash on zero-parameter member-injection functions.
  • [FIR] Fix graphs accidentally implementing binding-container interfaces when contributions use different scopes. Basically, checking another scope won't turn a container that supplies bindings into an interface the graph implements.
  • [FIR] Keep contributed graph accessors when their replacement or its origin is excluded.
  • [FIR] Avoid annotation-cache races during concurrent IDE analysis.
  • [FIR] Fix assisted factories whose return types nest or reorder factory type parameters.
  • [FIR/IR/interop] Fix recognition of @get:BindsOptionalOf properties when Dagger interop is enabled.
  • [IR] Keep dynamic graph arguments aligned when container order changes.
  • [IR] Prevent dynamic graph class name collisions when a generic binding container is used with different type arguments. Basically, graphs using Bindings<Int> and Bindings<Long> can coexist in the same file.
  • [IR] Avoid generated dynamic graph name collisions across sibling files.
  • [IR] Keep all transitively included binding containers when multiple graphs enter the same include cycle from different containers. Basically, improve compiler caching when containers are used in multiple graphs.
  • [IR] Resolve graph extension bindings before running parallel graph analysis. This keeps compiler lookups and cache writes on one thread, including for nested extensions and bindings loaded from dependencies.
  • [IR] Report required dependencies when an earlier parameter has a default value for the same missing type.
  • [IR] Fix a runtime crash when an assisted-injected class with no assisted parameters is used across modules with IR class generation.
  • [IR] Restore primitive and string inline provider values from dependency metadata.
  • [IR] Report an error when an assisted-injected constructor requests a set or eager map backed by suspend providers. Basically, assisted factories now get the same suspend-multibinding checks as ordinary injection.
  • [IR] Fix a compiler crash when reading @Binds declarations from generic binding containers.
  • [IR] Fix @Binds resolution when multiple graphs use the same generic binding container with different type arguments. Each graph now resolves bindings using its own container's type arguments.
  • [IR] Fix missing bindings for internal contributed objects across modules when generateContributionProviders, generateClassesInIr, and contributesAsInject are enabled together.
  • [IR] Report duplicate map keys when different key annotations unwrap to the same value, including implicit class keys.
  • [IR] Apply contribution replacements only in the scopes that declare them.
  • [IR] Report missing required graph bindings even when an @OptionalBinding accessor requests the same type, regardless of declaration order.

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [dev.zacsweers.metro](https://github.com/ZacSweers/metro) from 1.4.0 to 1.4.3.
- [Release notes](https://github.com/ZacSweers/metro/releases)
- [Changelog](https://github.com/ZacSweers/metro/blob/main/CHANGELOG.md)
- [Commits](ZacSweers/metro@1.4.0...1.4.3)

---
updated-dependencies:
- dependency-name: dev.zacsweers.metro
  dependency-version: 1.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Sep 14, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #353.

@dependabot dependabot Bot closed this Sep 21, 2026
@dependabot
dependabot Bot deleted the dependabot/gradle/dev.zacsweers.metro-1.4.3 branch September 21, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants