Propagate hash updates for project dependencies#2510
Merged
Conversation
This test verifies that the compiler correctly detects when a dependency public API type signatures change (via hash changes) and triggers recompilation of modules that use the dependency.
I made a crucial mistake in my implementation of reading iface hashes from .ty header files of imports - if we couldn't find the .ty file, we'd consider it "not changed" - how wreckless of me. If we cannot find the .ty file, clearly that should be an error... and now we actually go through the search path looking for the .ty file, like we do in other places where we access .ty files. I basically wrote the .ty freshness check based on projects without any dependencies. Now we properly support project deps!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Properly read .ty headers from project dependencies in order to perform staleness analysis of files. Rather naively, the initial implementation only looked at project local files and crucially did not error out on not finding a hash, so a missing .ty header would be considered no change and thus failing to update on changes in dependencies. This is now addressed!