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.
|
||
|---|---|---|
| .. | ||
| ast | ||
| attr | ||
| diagnostics | ||
| ext | ||
| feature_gate | ||
| mut_visit | ||
| parse | ||
| source_map | ||
| tokenstream | ||
| util | ||
| ast.rs | ||
| build.rs | ||
| Cargo.toml | ||
| config.rs | ||
| early_buffered_lints.rs | ||
| entry.rs | ||
| error_codes.rs | ||
| json.rs | ||
| lib.rs | ||
| mut_visit.rs | ||
| ptr.rs | ||
| README.md | ||
| show_span.rs | ||
| source_map.rs | ||
| tests.rs | ||
| tokenstream.rs | ||
| visit.rs | ||
The syntax crate contains those things concerned purely with syntax
– that is, the AST ("abstract syntax tree"), parser, pretty-printer,
lexer, macro expander, and utilities for traversing ASTs.
For more information about how these things work in rustc, see the rustc guide: