1
Fork 0

Properly encode spans with a dummy location and non-root SyntaxContext

Previously, we would throw away the `SyntaxContext` of any span with a
dummy location during metadata encoding. This commit makes metadata Span
encoding consistent with incr-cache Span encoding - an 'invalid span'
tag is only used when it doesn't lose any information.
This commit is contained in:
Aaron Hill 2020-09-12 23:26:17 -04:00
parent 498dab0256
commit a67d248b13
No known key found for this signature in database
GPG key ID: B4087E510E98B164
11 changed files with 160 additions and 158 deletions

View file

@ -162,7 +162,7 @@ impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for ExpnId {
impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for Span {
fn encode(&self, s: &mut EncodeContext<'a, 'tcx>) -> opaque::EncodeResult {
if self.is_dummy() {
if *self == rustc_span::DUMMY_SP {
return TAG_INVALID_SPAN.encode(s);
}