Fix class file invalidation issue when moving sources #1086
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.
This commit fixes an invalidation issue that occured when moving sources
around projects and then compiling these projects independently. The
previous invalidation logic was only handling the case where users move
sources around when all projects involved are compiled together.
However, when they are compiled in different steps, the invalidation
logic was no longer acting correctly.
The fix included here uses the generated products in all dependent class
files to avoid invalidating class files mapped to symbols that have
already been found in at least one of the project dependencies. This fix
doesn't rely on any in-memory information and therefore correctly
handles the stepped compilation scenario.
There is more information about the fix in the source code via comments.