diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-09-29 04:36:02 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-29 04:36:02 +0200 |
| commit | d7d7c2fce28f0fe39eec129fc29b0e78f3fb2317 (patch) | |
| tree | 90da203e88601999c1dc1e4b5852774f02e51fbd /src/libsyntax_pos | |
| parent | b30d9beafbedb898253a3103ff6afd9f034149f4 (diff) | |
| parent | 14a5aefb01bb4f18749ab56cd9fd37bf93c86a37 (diff) | |
| download | rust-d7d7c2fce28f0fe39eec129fc29b0e78f3fb2317.tar.gz rust-d7d7c2fce28f0fe39eec129fc29b0e78f3fb2317.zip | |
Rollup merge of #64824 - Mark-Simulacrum:no-stable-hasher-result-everywhere, r=michaelwoerister
No StableHasherResult everywhere
This removes the generic parameter on `StableHasher`, instead moving it to the call to `finish`. This has the side-effect of making all `HashStable` impls nicer, since we no longer need the verbose `<W: StableHasherResult>` that previously existed -- often forcing line wrapping.
This is done for two reasons:
* we should avoid false "generic" dependency on the result of StableHasher
* we don't need to codegen two/three copies of all the HashStable impls when they're transitively used to produce a fingerprint, u64, or u128. I haven't measured, but this might actually make our artifacts somewhat smaller too.
* Easier to understand/read/write code -- the result of the stable hasher is irrelevant when writing a hash impl.
Diffstat (limited to 'src/libsyntax_pos')
| -rw-r--r-- | src/libsyntax_pos/lib.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs index ca177eb4a36..674f17de618 100644 --- a/src/libsyntax_pos/lib.rs +++ b/src/libsyntax_pos/lib.rs @@ -1067,14 +1067,14 @@ impl SourceFile { normalize_newlines(&mut src); let src_hash = { - let mut hasher: StableHasher<u128> = StableHasher::new(); + let mut hasher: StableHasher = StableHasher::new(); hasher.write(src.as_bytes()); - hasher.finish() + hasher.finish::<u128>() }; let name_hash = { - let mut hasher: StableHasher<u128> = StableHasher::new(); + let mut hasher: StableHasher = StableHasher::new(); name.hash(&mut hasher); - hasher.finish() + hasher.finish::<u128>() }; let end_pos = start_pos.to_usize() + src.len(); if end_pos > u32::max_value() as usize { @@ -1120,10 +1120,10 @@ impl SourceFile { // Check that no-one else have provided the source while we were getting it if *external_src == ExternalSource::AbsentOk { if let Some(src) = src { - let mut hasher: StableHasher<u128> = StableHasher::new(); + let mut hasher: StableHasher = StableHasher::new(); hasher.write(src.as_bytes()); - if hasher.finish() == self.src_hash { + if hasher.finish::<u128>() == self.src_hash { *external_src = ExternalSource::Present(src); return true; } |
