diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-09-21 14:01:39 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2022-09-26 08:28:45 +1000 |
| commit | 66e9b1149c7fbc1fb8108de72b9da1ec0f35afec (patch) | |
| tree | e3194c6bc747d0cc8115be4c83a0b9d96905df5b /compiler/rustc_errors/src | |
| parent | f3fafbb006ee98635874f73e480655912b465e65 (diff) | |
| download | rust-66e9b1149c7fbc1fb8108de72b9da1ec0f35afec.tar.gz rust-66e9b1149c7fbc1fb8108de72b9da1ec0f35afec.zip | |
Rearrange `TokenTreesReader::parse_token_tree`.
`parse_token_tree` is basically a match with four arms: `Eof`, `OpenDelim`, `CloseDelim`, and "other". It has two call sites, and at each call site one of the arms is unreachable. It's also not inlined. This commit removes `parse_token_tree` by splitting it into four functions and inlining them. This avoids some repeated conditional tests and also some non-inlined function calls on the hot path.
Diffstat (limited to 'compiler/rustc_errors/src')
| -rw-r--r-- | compiler/rustc_errors/src/lib.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index b44cf352233..babab1fa112 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -63,7 +63,8 @@ pub mod translation; pub use diagnostic_builder::IntoDiagnostic; pub use snippet::Style; -pub type PResult<'a, T> = Result<T, DiagnosticBuilder<'a, ErrorGuaranteed>>; +pub type PErr<'a> = DiagnosticBuilder<'a, ErrorGuaranteed>; +pub type PResult<'a, T> = Result<T, PErr<'a>>; // `PResult` is used a lot. Make sure it doesn't unintentionally get bigger. // (See also the comment on `DiagnosticBuilder`'s `diagnostic` field.) |
