Properly handle SyntaxContext of dummy spans in incr comp

Fixes #80336

Due to macro expansion, we may end up with spans with an invalid
location and non-root `SyntaxContext`. This commits preserves the
`SyntaxContext` of such spans in the incremental cache, and ensures
that we always hash the `SyntaxContext` when computing the `Fingerprint`
of a `Span`

Previously, we would discard the `SyntaxContext` during serialization to
the incremental cache, causing the span's `Fingerprint` to change across
compilation sessions.
This commit is contained in:
Aaron Hill 2021-01-03 10:09:32 -05:00
parent fd2df74902
commit 482a67d20f
No known key found for this signature in database
GPG key ID: B4087E510E98B164
3 changed files with 32 additions and 13 deletions

View file

@ -0,0 +1,10 @@
// Regression test for issue #80336
// Test that we properly handle encoding, decoding, and hashing
// of spans with an invalid location and non-root `SyntaxContext`
// revisions:rpass1 rpass2
// only-x86_64
pub fn main() {
let _ = is_x86_feature_detected!("avx2");
}