Skip to content

Dagger 2.58

Latest

Choose a tag to compare

@bcorso bcorso released this 15 Jan 23:11
· 1 commit to master since this release

Note: The next Dagger release will require AGP 9 when using the HiltGradlePlugin. (e92e3f3)

Potential breaking changes:

  • Flipped default for dagger.useBindingGraphFix to enabled (d41e836).
    See https://dagger.dev/dev-guide/compiler-options#useBindingGraphFix.
    Fix: If this change breaks you it’s likely due to providing a binding in an incorrect module, (e.g. the binding requests an Activity but is installed in the SingletonComponent). The fix is to move the @Provides so that it is installed into the correct component (e.g. the ActivityComponent instead of SingletonComponent). You can also set dagger.useBindingGraphFix=disabled but note that this flag is only temporary and will eventually be removed.
  • The use of abstract var in components is now banned in super types.
    The reason for this change is that an abstract var property creates both a getter and a setter on the component which is almost always unintentional.
    Fix: If this change breaks you, use either an abstract val foo: Foo if you need a getter or abstract fun inject(foo: Foo) if you need an inject method. Note that abstract var is already banned if it is declared directly on the @Component class/interface, but this change fixes the check so that it’s banned even if it’s inherited from a super type.

Bug fixes/features:

  • Fixes #1116, #1630, Supported Map<K, Lazy<V>> as a multibinding request type. (7f981a4)
  • Fixes #3601. No longer adds a deprecation warning for unused dependencies on setters on the component builder. (1cf9dfc)
  • Fixes #4982:
    • Added validation to prevent using Java keywords in Dagger-generated code (72e21a8)
    • Added error for binding elements names that are Java keywords. (38071c5)
    • Java keyword validation is now performed earlier during the superficial validation stage. (7f6f7bd)