diff options
Diffstat (limited to 'src/libsyntax_pos/lib.rs')
| -rw-r--r-- | src/libsyntax_pos/lib.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs index d11ef5fcab2..25391ad5ce6 100644 --- a/src/libsyntax_pos/lib.rs +++ b/src/libsyntax_pos/lib.rs @@ -34,7 +34,7 @@ pub use symbol::{Symbol, sym}; mod analyze_source_file; pub mod fatal_error; -use rustc_data_structures::stable_hasher::StableHasher; +use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; use rustc_data_structures::sync::{Lrc, Lock}; use std::borrow::Cow; @@ -245,6 +245,14 @@ impl Ord for Span { } } +impl<CTX> HashStable<CTX> for Span + where CTX: StableHashingContextLike +{ + fn hash_stable(&self, ctx: &mut CTX, hasher: &mut StableHasher) { + ctx.hash_stable_span(self, hasher) + } +} + /// A collection of spans. Spans have two orthogonal attributes: /// /// - They can be *primary spans*. In this case they are the locus of @@ -1566,4 +1574,6 @@ fn lookup_line(lines: &[BytePos], pos: BytePos) -> isize { /// Requirements for a `StableHashingContext` to be used in this crate. /// This is a hack to allow using the `HashStable_Generic` derive macro /// instead of implementing everything in librustc. -pub trait StableHashingContextLike {} +pub trait StableHashingContextLike { + fn hash_stable_span(&mut self, span: &Span, hasher: &mut StableHasher); +} |
