From 30d921fb1e0ea920fc85af6fa46c2be3317568c3 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Thu, 4 Jan 2018 13:13:32 +0100 Subject: [PATCH] Span Encoding: Replace if with debug_assertion() and add some comments. --- src/librustc_metadata/encoder.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs index efc39805a742d..a42c8be9c20aa 100644 --- a/src/librustc_metadata/encoder.rs +++ b/src/librustc_metadata/encoder.rs @@ -151,9 +151,8 @@ impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { let span = span.data(); - if span.lo > span.hi { - return TAG_INVALID_SPAN.encode(self) - } + // The Span infrastructure should make sure that this invariant holds: + debug_assert!(span.lo <= span.hi); if !self.filemap_cache.contains(span.lo) { let codemap = self.tcx.sess.codemap(); @@ -162,6 +161,8 @@ impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { } if !self.filemap_cache.contains(span.hi) { + // Unfortunately, macro expansion still sometimes generates Spans + // that malformed in this way. return TAG_INVALID_SPAN.encode(self) }