Move input tracking to BuildStep
#3884
Merged
+186
−121
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For #3811.
Tracking of inputs is owned by
BuildStepImpl
, but the work is currently split acrossBuildStepImpl
,SingleStepReader
and the whole hierarchy of readers.Part of the reason for the split is that
BuildStepImpl
is inpackage:build
so it doesn't actually know about the types it needs to know about to do the work.So, move it to
build_runner_core
, make it explicitly useSingleStepReader
, including creatingSingleStepReader
without anAssetGraph
for that use case.Now tracking happens in exactly one place and is removed from
AssetReader
altogether.Some tests need to know "what files were read" from readers that are not even part of a build; add this as test functionality to
TestReaderWriter
. Tests that do actually need access toInputTracker
results get it via some global state which is not ideal, will see if I can come up with a better way in future PRs :)