Releases: ZacSweers/metro
0.5.3
- Behavior change: The
enableScopedInjectClassHints
option is no longer enabled by default. This option is tricky to get right and will be iterated on further in #764. - Enhancement: Generate synthetic
$$BindsMirror
classes to...- support full IC compatibility with changing annotations and return types on
@Binds
and@Multibinds
declarations - allow these declarations to be
private
- support full IC compatibility with changing annotations and return types on
- Enhancement: Allow
@Binds
and@Multibinds
functions to be private. - Enhancement: Allow "static graphs" via companions implementing the graph interface itself.
- Enhancement: Allow graphs to aggregate
internal
contributions from other compilations IFF those compilations are marked as friend paths. This mainly allows for test graphs to consume contributions from their corresponding main source sets. - Enhancement: Allow
internal
graphs to extendinternal
contributed interfaces from other compilations IFF those compilations are marked as friend paths. - Fix: Sort soft edges before hard edges within (valid) cycles. Previously we would just apply a standard topological sort here, but in this scenario we want to add extra weight to ready-up nodes that depend directly on the deferred type being used to break the cycle first.
- Fix: When recording IC lookups of overridable declarations, only record the original declaration and not fake overrides.
- Fix: Record IC lookups to
@Multibinds
declarations. - Fix: Write
@Multibinds
information to metro metadata. - Fix: Always write metro metadata to
@BindingContainer
classes, even if empty. - Fix: When
@Includes
-ing other graphs, link against the original interface accessor rather than the generated$$MetroGraph
accessor. - Fix: Disambiguate contributed nullable bindings from non-nullable bindings.
- Fix: When computing
@Includes
graph dependencies from accessors, only consider directly included graphs and not transitively included graphs. - Fix: Expose
@Includes
graph dependencies as synthetic_metroAccessor
types for extended graphs rather than exposing the included graph directly. - Fix: Prohibit calling
.asContribution()
on@ContributesGraphExtension
-annotated types.@ContributesGraphExtension
-annotated types cannot be validated at compile-time with this function as their generated class is definitionally contextual and the compiler cannot infer that from callsites of this function alone. - Fix: Only process
@DependencyGraph
types in FIR supertype generation. Contributed graph extension supertypes are merged only in IR. - Fix: Generate
$$MetroContribution
binds functions before aggregating contributions. - Fix: Don't short-circuit class visiting in contribution visiting in IR.
- Fix: Propagate property annotations for
@Provides
-properties, previously only the accessor function annotations were being included. - Fix: Propagate class annotations for
@Inject
-annotated constructors to factory class mirror functions, previously only the constructor's annotations were being included. - Fix: Fix dispatch receiver for
DelegateFactory
fields whenchunkFieldInits
is enabled. - Fix: Fix compilation error for members-injected classes with no direct, but only inherited
@Inject
attributes. - Fix: Always look up member injectors of ancestor classes of classes member-injected by graphs (sorry, word soup I know).
- Fix: Ensure
$$MetroContribution
interfaces are not generated for binding containers by ensuring binding container annotations are readable during their generation. - Change to
UnsupportedOperationException
for compiler intrinsic stubs, matching what the stdlib does. - Add a
ViewModel
assisted injection example tocompose-navigation-app
sample. - Small improvements to the doc site (404 page, favicon, etc.)
Special thanks to @hossain-khan, @bnorm, @yschimke, @kevinguitar, and @JoelWilcox for contributing to this release!
What's Changed
- Fix main and update node/yarn versions by @ZacSweers in #772
- Update dependency font-awesome to v7 by @renovate[bot] in #771
- Update plugin spotless to v7.2.1 by @renovate[bot] in #769
- Update plugin poko to v0.19.2 by @renovate[bot] in #768
- Doc updates by @ZacSweers in #777
- chore: Update metro docs site favicon by @hossain-khan in #782
- [ADDED] Metro docs site custom 404 page support by @hossain-khan in #796
- Introduces binds mirrors and expect/actual IC tracking by @ZacSweers in #755
- Add an assisted injection sample to compose-navigation-app by @yschimke in #762
- Disambiguate nullable binds by @ZacSweers in #799
- chore(deps): update plugin poko to v0.19.3 by @renovate[bot] in #800
- Support graph companion objects implementing the graph by @ZacSweers in #803
- Fix how includes dependencies transit multi-level graph dependencies by @ZacSweers in #804
- Unify FIR and IR diagnostic tests by @bnorm in #809
- chore(deps): update dependency mkdocs-material to v9.6.16 by @renovate[bot] in #810
- chore(deps): update plugin testkit to v0.14 by @renovate[bot] in #805
- Predeclare spotless deps by @ZacSweers in #812
- Limit asContribution() usage to just graphs + fixes by @ZacSweers in #811
- Propagate MetroAnnotations to mirror function gen in factories by @ZacSweers in #813
- Add a regression test for #776 by @ZacSweers in #814
- Sort soft edges before hard edges within (valid) cycles by @kevinguitar in #761
- Allow contributions from friend paths by @ZacSweers in #815
- enhancement: Added social share card support for the mkdocs site by @hossain-khan in #817
- Fix receivers for delegatefactory fields in chunking by @ZacSweers in #818
- chrore: docs site color config cleanup by @hossain-khan in #819
- Handle member injection with subtypes with no injection by @ZacSweers in #725
- Ensure binding container annotations are readable in contribution gen by @ZacSweers in #825
- Fix logic when generating container metadata by @ZacSweers in #828
- chore(deps): update dependency pymdown-extensions to v10.16.1 by @renovate[bot] in #829
- Another
asContribution
example with contributed graph extension factories by @ZacSweers in #831 - Change to
UnsupportedOperationException
for compiler intrinsics by @ZacSweers in #832
New Contributors
- @hossain-khan made their first contribution in #782
Full Changelog: 0.5.2...0.5.3
0.5.2
- Enhancement: De-dupe contributions before processing in contributed graphs.
- Fix: Don't extend contributed binding container classes in generated contributed graphs.
- Small doc fixes.
Special thanks to @bnorm and @alexvanyo for contributing to this release!
What's Changed
- Fail tests eagerly when compiler plugins report errors by @bnorm in #741
- Move remaining Dagger interop tests to Kotlin test infrastructure by @bnorm in #749
- Link @ContributesGraphExtension to dependency-graphs documentation by @alexvanyo in #748
- Remove references to @Multibinding by @alexvanyo in #745
- Parallelize gradle tests by @ZacSweers in #754
- Update plugin spotless to v7.2.0 by @renovate[bot] in #756
- Update ktor monorepo to v3.2.2 by @renovate[bot] in #714
- Update junit-framework monorepo to v5.13.4 by @renovate[bot] in #763
- Don't extend contributed containers in IR by @ZacSweers in #766
New Contributors
- @alexvanyo made their first contribution in #748
Full Changelog: 0.5.1...0.5.2
0.5.1
- Breaking change: Rename the
generateHintProperties
Gradle DSL property togenerateContributionHints
. - Enhancement: Chunk field initializers and constructor statements across multiple init functions to avoid
MethodTooLargeException
in large graphs. This is currently experimental and gated behind thechunkFieldInits()
Gradle DSL. - Enhancement: Mark generated factories and member injectors' constructors as
private
, matching the same change in Dagger 2.57. - Enhancement: Add a new Metro option
warnOnInjectAnnotationPlacement
to disable suggestion to lift@Inject
to class when there is only one constructor, the warning applies to constructors with params too. - Fix: Fix
@Contributes*.replaces
not working if the contributed type is in the same compilation but a different file. - Fix: Fix generated
MembersInjector.create()
return types' generic argument to use the target class. - Fix: Don't generated nested MetroContribution classes for binding containers.
- Fix: Fix contributing binding containers across compilations.
Special thanks to @kevinguitar and @ChristianKatzmann for contributing to this release!
What's Changed
- Update plugin mavenPublish to v0.34.0 by @renovate[bot] in #711
- Add regression test for #712 by @ZacSweers in #715
- Chunk field initialization by @ZacSweers in #716
- Fix package-lock in samples by @ZacSweers in #717
- Various compiler cleanups by @ZacSweers in #718
- Update plugin com.gradle.develocity to v4.1 by @renovate[bot] in #720
- Improvements to regen by @ZacSweers in #719
- Implement ContributionHintFirGenerator by @ZacSweers in #722
- Fix chunking creator params by @ZacSweers in #724
- Fix typo in
platformCanGenerateContributionHints
by @ChristianKatzmann in #727 - Update dependency io.github.classgraph:classgraph to v4.8.181 by @renovate[bot] in #726
- Update dagger to v2.57 by @renovate[bot] in #731
- Update dependency androidx.navigation:navigation-compose to v2.9.2 by @renovate[bot] in #730
- Update dependency androidx.lifecycle:lifecycle-runtime-compose to v2.9.2 by @renovate[bot] in #728
- Add a new Metro option
warnOnInjectAnnotationPlacement
by @kevinguitar in #723 - Update dependency androidx.lifecycle:lifecycle-viewmodel-ktx to v2.9.2 by @renovate[bot] in #729
- Mark factory/member injector constructors private by @ZacSweers in #735
- Try regenerating package lock again by @ZacSweers in #737
- Manually resolve replaces in other files by @ZacSweers in #736
- Fix contributing binding containers across compilations by @ZacSweers in #738
- Small chunking work by @ZacSweers in #740
Full Changelog: 0.5.0...0.5.1
0.5.0
- New: Experimental support for "binding containers" via
@BindingContainer
. See their docs for more details. - New: Add
keys-scopedProviderFields-*.txt
andkeys-providerFields-*.txt
reports to see generated field reports for graphs. - Enhancement: Remove
Any
constraint frombinding<T>()
, allowing bindings to satisfy nullable variants. - Enhancement: Add diagnostic to check for scoped
@Binds
declarations. These are simple pipes and should not have scope annotations. - Enhancement: Move graph dependency cycle checks to earlier in validation.
- Enhancement: When using Dagger interop, default
allowEmpty
to true when using Dagger's@Multibinds
annotation. - Enhancement: Make Dagger interop providers/lazy instances a
dagger.internal.Provider
internally for better compatibility with Dagger internals. Some dagger-generated code assumes this type at runtime. - Enhancement: Support javax/jakarta
Provider
types as multibinding Map value types when Dagger interop is enabled. - Enhancement: Completely skip processing local and enum classes as they're irrelevant to Metro's compiler.
- Enhancement: When reporting
@Binds
declarations in binding stacks, report the original declaration rather than inherited fake overrides. - Enhancement: Add interop support for kotlin-inject's
@AssistedFactory
annotations. - Enhancement: Add diagnostic to check for graph classes directly extending other graph classes. You should use
@Extends
. - Enhancement: Add diagnostic to check for
@Assisted
parameters in provides functions. - Enhancement: Add diagnostic to check duplicate
@Provides
declaration names in the same class. - Fix: Within (valid) cycles, topographically sort bindings within the cycle. Previously these would fall back to a deterministic-but-wrong alphabetical sort.
- Fix: Handle enum entry arguments to qualifier, scope, and map key annotations.
- Fix: Report the original location of declarations in fake overrides in error reporting.
- Fix: Handle default values on provides parameters with absent bindings during graph population.
- Fix: Don't try to read private accessors of
@Includes
parameters. - Fix: Don't quietly stub accessors for missing
Binding.Provided
bindings. - Fix: Check constructor-annotated injections when discovering scoped classes in parent graphs.
- Fix: Fix
BaseDoubleCheck.isInitialized()
. - Fix: Gracefully fall back to
MessageCollector
for graph seal and contributed graph errors on sourceless declarations. - Fix: Fix supporting overloads of binds functions from parent graphs or external supertypes.
- Fix: Fix generating binding functions with names that contain dashes.
- Fix: Treat interop'd Dagger/Anvil/KI components as implicitly extendable.
- Fix: Record lookups of
@Binds
declarations for IC. - Fix: Record lookups of generated class factories and their constructor signatures for IC.
Special thanks to @kevinguitar, @gabrielittner, @chrisbanes, @yschimke, and @ajarl for contributing to this release!
What's Changed
- Update dependency org.junit.jupiter:junit-jupiter to v5.13.2 by @renovate[bot] in #628
- Update dependency io.github.classgraph:classgraph to v4.8.180 by @renovate[bot] in #629
- Update ksp monorepo to v2.2.0-2.0.2 by @renovate[bot] in #630
- Update plugin poko to v0.19.0 by @renovate[bot] in #637
- Update atomicfu to v0.29.0 by @renovate[bot] in #636
- Update dependency com.facebook:ktfmt to v0.56 - autoclosed by @renovate[bot] in #635
- Update plugin binaryCompatibilityValidator to v0.18.0 by @renovate[bot] in #634
- Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.7.0 by @renovate[bot] in #632
- Update circuit to v0.29.0 by @renovate[bot] in #639
- Add a WorkManager sample by @yschimke in #578
- Update dependency androidx.work:work-runtime to v2.10.2 by @renovate[bot] in #641
- Update dependency com.squareup.okio:okio to v3.14.0 by @renovate[bot] in #642
- Update kotlinx.serialization to v1.9.0 by @renovate[bot] in #640
- Update okhttp monorepo to v5.0.0-alpha.17 by @renovate[bot] in #643
- Update dependency mkdocs-material to v9.6.15 by @renovate[bot] in #648
- Update circuit to v0.29.1 by @renovate[bot] in #646
- Update plugin shadow to v9.0.0-rc1 by @renovate[bot] in #652
- Update okio to v3.15.0 by @renovate[bot] in #650
- Update dependency androidx.navigation:navigation-compose to v2.9.1 by @renovate[bot] in #653
- Update kct to v0.8.0 by @renovate[bot] in #657
- Remove Any bound from binding.kt by @ZacSweers in #654
- Report the original location of declarations in fake overrides in error reporting by @ZacSweers in #658
- Handle absent bindings during graph population by @ZacSweers in #660
- Update okhttp monorepo to v5.0.0 by @renovate[bot] in #662
- Update ktor monorepo to v3.2.1 by @renovate[bot] in #661
- Update junit-framework monorepo to v5.13.3 by @renovate[bot] in #667
- Update dependency gradle to v8.14.3 by @renovate[bot] in #668
- Initial support of binding containers by @ZacSweers in #626
- Add diagnostic for scopes on binds annotations by @ZacSweers in #670
- Check constructor annotations in IrContributionVisitor by @ZacSweers in #671
- Support javax/jakarta Providers as map multibinding value types by @kevinguitar in #666
- Allow empty multibinding for Dagger's
@Multibinds
interop by @kevinguitar in #672 - Fix BaseDoubleCheck.isInitialized() check by @kevinguitar in #673
- Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.7.1-0.6.x-compat by @renovate[bot] in #674
- Update okhttp monorepo to v5.1.0 by @renovate[bot] in #675
- Update wire to v5.3.4 by @renovate[bot] in #678
- Update plugin spotless to v7.1.0 by @renovate[bot] in #676
- Prohibit direct graph extension of other graph classes by @ZacSweers in #679
- Add KI's new assistedfactory annotation by @ZacSweers in #680
- Log function name for IR param size difference error by @chrisbanes in #684
- Update wire to v5.3.5 by @renovate[bot] in #681
- Sort within SCCs by @ZacSweers in #683
- Update plugin binaryCompatibilityValidator to v0.18.1 by @renovate[bot] in #686
- Update dependency com.google.googlejavaformat:google-java-format to v1.28.0 by @renovate[bot] in #687
- Disallow assisted provides parameters by @ZacSweers in #688
- Fall back to MessageCollector for seal errors with no file by @ZacSweers in #693
- Handle enum arguments in renderAsAnnotationArgument by @ZacSweers in #695
- Another message collector fallback by @ZacSweers in #696
- Fix generating binding functions with names that contain - by @ajarl in #698
- Update plugin poko to v0.19.1 by @renovate[bot] in #699
- Propagate binding containers from annotation inclusions by @ZacSweers in #700
- Better handle empty graphs by @ZacSweers in #701
- Add checkers for binding containers by @ZacSweers in #702
- Binding containers interop by @ZacSweers in #705
- Run multiplatform tests on main only + macos by @ZacSweers in #706
- Add binding container IC tests by @ZacSweers in #707
- Fix factory class lookups in IC by @kevinguitar in #703
- Disallow contributed binding container for now by @ZacSweers in #708
- Revert "Disallow contributed binding container for now" by @ZacSweers in #709
- Implement contribution merging for binding containers by @ZacSweers in #710
New Contributors
- @chrisbanes made their first contribution in #684
- @ajarl made their first contribution in https://git...
0.4.0
- New: Injected constructors may now be private. This can be useful for scenarios where you want
@Inject
-annotated constructors to only be invokable by Metro's generated code. - New: If reporting is enabled, write unused bindings diagnostics to
keys-unused-*.txt
. - New: Support for generic assisted injection.
- New: Support for generic member injection.
- New: Add diagnostic to prohibit type parameters on injected member functions.
- Enhancement: Enable child graphs to depend on parent-scoped dependencies that are unused and not referenced in the parent scope. This involves generating hints for scoped
@Inject
classes and is gated on a new Metro optionenableScopedInjectClassHints
, which is enabled by default. - Enhancement: Check for context parameters in top-level function injection checker.
- Enhancement: Store member injection info in metro metadata to slightly optimize member injection code gen.
- Enhancement: Avoid writing providers fields in graphs for unused bindings.
- Enhancement: Improve missing binding trace originating from root member injectors.
- Fix: Fix support for generic injected constructor parameters.
- Fix: Fix support for repeated contributes annotations by moving contribution binding function generation to IR.
- Fix: Ensure scope/qualifier annotation changes on constructor-injected classes dirty consuming graphs in incremental compilation.
- Fix: Report member injection dependencies when looking up constructor-injected classes during graph population.
- Fix: Disable IR hint generation on JS targets too, as these now have the same limitation as native/WASM targets in Kotlin 2.2. Pending upstream support for generating top-level FIR declarations in KT-75865.
- Fix: Ensure private provider function annotations are propagated across compilation boundaries.
- Fix: Substitute copied FIR type parameter symbols with symbols from their target functions.
- Fix: Improved support for generic member injection.
- Fix: Propagate qualifiers on graph member injector functions.
- Fix: Fix support for requesting
MembersInjector
types. - [internal] Report IR errors through
IrDiagnosticReporter
. - [internal] Significantly refactor + simplify IR parameter handling.
- Fix publishing Apple native targets in snapshots.
- Update to Kotlin
2.2.0
. - Update Gradle plugin to target Kotlin language version to
1.9
(requires Gradle 8.3+).
Special thanks to @kevinguitar, @gabrielittner, and @JoelWilcox for contributing to this release!
What's Changed
- Update dependency com.facebook:ktfmt to v0.55 by @renovate in #602
- Update plugin shadow to v9.0.0-beta17 by @renovate in #605
- Update dependency Markdown to v3.8.1 by @renovate in #604
- Update dependency androidx.compose.material:material-navigation to v1.8.3 by @renovate in #606
- Update compose.jb to v1.8.2 by @renovate in #603
- Update dependency Markdown to v3.8.2 by @renovate in #612
- Update to Kotlin 2.2 by @ZacSweers in #396
- Update dependency pymdown-extensions to v10.16 by @renovate in #617
- Update dependency Pygments to v2.19.2 by @renovate in #616
- Build/run benchmarks on CI by @ZacSweers in #615
- Clean up comment by @ZacSweers in #618
- Enable windows samples runs by @ZacSweers in #620
- Update plugin mavenPublish to v0.33.0 by @renovate in #622
- Update to 2.2.0 final by @ZacSweers in #623
- Update plugin buildConfig to v5.6.7 by @renovate in #625
- Publishing fixes by @ZacSweers in #627
Full Changelog: 0.3.8...0.4.0
0.3.8
- Enhancement: Disambiguate
MetroContribution
class names based on scope to better support IC when changing scopes. - Enhancement: Minimize deferred types when breaking cycles.
- Fix: Disallow injection of
Lazy<T>
whereT
is an@AssistedFactory
-annotated class. - Fix: Don't short-circuit assisted injection validation if only an accessor exists.
- Fix: Allow cycles of assisted factories to their target classes.
- Update shaded okio to
3.13.0
. - Update atomicfu to
0.28.0
.
Special thanks to @kevinguitar, @bnorm, and @JoelWilcox for contributing to this release!
What's Changed
- Add missing test by @ZacSweers in #560
- Update ksp monorepo to v2.1.21-2.0.2 by @renovate in #562
- Update circuit to v0.28.1 by @renovate in #561
- Add benchmark project generator + runner by @ZacSweers in #557
- Update dependency font-awesome to v6.7.2 by @renovate in #566
- Update dependency vue to v2.7.16 by @renovate in #565
- Generate performance summaries by @ZacSweers in #567
- Revert "Update dependency vue to v2.7.16" by @ZacSweers in #571
- Revert "Update dependency font-awesome to v6.7.2" by @ZacSweers in #570
- Update perf summary dump by @ZacSweers in #579
- Allow local testing for benchmarks by @ZacSweers in #581
- Add Kotlin Compiler DevKit as a required IntelliJ plugin by @bnorm in #585
- Update ktor monorepo to v3.2.0 by @renovate in #587
- Update metrow help text to include 'format' option by @JoelWilcox in #583
- Update okio to v3.13.0 by @renovate in #589
- Backport Disambiguate MetroContribution class names based on scope by @ZacSweers in #591
- Update atomicfu to v0.28.0 by @renovate in #580
- Update plugin shadow to v9.0.0-beta16 by @renovate in #592
- Update plugin buildConfig to v5.6.6 by @renovate in #596
- Don't short-circuit if no dependents exist by @ZacSweers in #597
- Support assisted factory cycles + minimize delegate factories by @kevinguitar in #563
Full Changelog: 0.3.7...0.3.8
0.3.7
- Fix: Record lookups of generated static member inject functions for IC.
- Fix: Dedupe merged overrides of
@Includes
accessors.
Special thanks to @kevinguitar for contributing to this release!
What's Changed
- Fix static inject function calls in IC by @kevinguitar in #544
- Update agp to v8.10.1 by @renovate in #414
- Dedupe merged overrides of
@Includes
accessors by @kevinguitar in #547 - Update junit5 monorepo to v5.13.1 by @renovate in #553
- Failing test: Includes a deep inherited interface results in duplicated bindings by @kevinguitar in #552
Full Changelog: 0.3.6...0.3.7
0.3.6
- New: Add new
Provider.map
,Provider.flatMap
,Provider.zip
, andProvider.memoize
utility APIs. - Enhancement: Improve graph validation performance by avoiding unnecessary intermediate sorts (again).
- Enhancement: Fail eagerly with a clear error message if
languageVersion
is too old. - Enhancement: Validate improperly depending on assisted-injected classes directly at compile-time.
- Fix: Support constructing nested function return types for provider functions.
- Fix: Propagate
@Include
bindings from parent graphs to extension graphs. - Fix: Reparent copied lambda default values in IR.
- [internal] Make internal renderings of
IrType
more deterministic.
Special thanks to @kevinguitar for contributing to this release!
What's Changed
- Deterministic IrType.render + sorted sets/maps again by @ZacSweers in #518
- Failing test for ContributesGraphExtension missing binding when using @includes in parent by @kevinguitar in #526
- Add new Provider utils by @ZacSweers in #527
- Update wire to v5.3.2 by @renovate in #532
- Update dependency androidx.fragment:fragment-ktx to v1.8.8 by @renovate in #536
- Update dependency androidx.appcompat:appcompat to v1.7.1 by @renovate in #535
- Update dependency androidx.lifecycle:lifecycle-viewmodel-ktx to v2.9.1 by @renovate in #537
- Reparent copied lambda default values in IR. by @ZacSweers in #539
- Fail with a clear error message if
languageVersion
is too old by @ZacSweers in #540 - Validate assisted inject dependencies by @ZacSweers in #542
- Update dependency androidx.lifecycle:lifecycle-runtime-compose to v2.9.1 by @renovate in #545
- Update dependency gradle to v8.14.2 by @renovate in #546
- Update wire to v5.3.3 by @renovate in #550
Full Changelog: 0.3.5...0.3.6
0.3.5
- New: Implement top-level function injection checkers.
- Change: Disallow top-level function injections to be scoped.
- Fix: Support type parameters with
where
bounds. - Fix: Support injected class type parameters with any bounds.
- Fix: Support generic graph factory interfaces.
- Fix: In the presence of multiple contributing annotations to the same scope, ensure only hint function/file is generated.
- Fix: Improve shading to avoid packaging in stdlib and other dependency classes.
- Fix: Revert #483 as it broke some cases we haven't been able to debug yet.
Special thanks to @gabrielittner and @kevinguitar for contributing to this release!
What's Changed
- Update kotlinInject.anvil to v0.1.6 by @renovate in #491
- Update plugin spotless to v7.0.4 by @renovate in #492
- Update okio to v3.12.0 by @renovate in #493
- Update plugin shadow to v9.0.0-beta15 by @renovate in #494
- Update plugin shadow to v9.0.0-beta15 by @renovate in #497
- Failing test for an IC issue on contributed class visibility changes by @kevinguitar in #496
- Write FIR logs when reporting/debug is enabled by @ZacSweers in #499
- No longer generate bounds for API-invisible FIR declarations by @ZacSweers in #502
- Update okhttp monorepo to v5.0.0-alpha.15 by @renovate in #505
- Support generic providers in Graph Factory by @kevinguitar in #495
- Fix shading by @ZacSweers in #506
- Use unsubstitutedScope in SAM function lookups by @ZacSweers in #507
- Update okhttp monorepo to v5.0.0-alpha.16 by @renovate in #508
- Use unsubstituted scope more by @ZacSweers in #510
- ContributesBinding: Fix implicit bound type resolution by @kevinguitar in #511
- Update junit5 monorepo to v5.13.0 by @renovate in #512
- Revert "Avoid intermediate sorts (#483)" by @ZacSweers in #515
- Implement top-level function injection checkers by @ZacSweers in #516
- Followup to #510 by @ZacSweers in #517
Full Changelog: 0.3.4...0.3.5
0.3.4
- Enhancement: Use a simple numbered (but deterministic) naming for contributed graph classes to avoid long class names.
- Enhancement: Improve graph validation performance by avoiding unnecessary intermediate sorts.
- Enhancement: Move binding validation into graph validation step.
- Enhancement: Avoid unnecessary BFS graph walk in provider field collection.
- Fix: Fix provider field populating missing types that previously seen types dependent on.
Special thanks to @ChristianKatzmann and @madisp for contributing to this release!
What's Changed
- Fix link to IDE support in
circuit-app
by @ChristianKatzmann in #476 - Use counting name allocator for contributed graphs instead by @ZacSweers in #479
- Raise samples compile/target sdk by @ZacSweers in #480
- Fix SCC typo by @ZacSweers in #482
- Avoid intermediate sorts by @ZacSweers in #483
- Clean up multibinding providers by @ZacSweers in #484
- Update plugin com.gradle.develocity to v4.0.2 by @renovate in #485
- Fix walking successors + rework missing binding validation order by @madisp in #486
- Allow computing binding to create multiple bindings by @ZacSweers in #487
New Contributors
- @ChristianKatzmann made their first contribution in #476
- @madisp made their first contribution in #486
Full Changelog: 0.3.3...0.3.4