diff options
| author | bors <bors@rust-lang.org> | 2022-04-21 15:42:50 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-21 15:42:50 +0000 |
| commit | b04c5329e1e145fb2fb46c5a7e775638712b03aa (patch) | |
| tree | 8c1679de53558157b02052094a149952561d96d7 /compiler/rustc_parse/src/parser/attr_wrapper.rs | |
| parent | 1dec35a1b0df406da5d7cae55a7fa8d186a2b028 (diff) | |
| parent | 643e9f707ed4ca13a158b6e290b424e520809ca6 (diff) | |
| download | rust-b04c5329e1e145fb2fb46c5a7e775638712b03aa.tar.gz rust-b04c5329e1e145fb2fb46c5a7e775638712b03aa.zip | |
Auto merge of #96210 - nnethercote:speed-up-TokenCursor, r=petrochenkov
Speed up `TokenCursor` Plus a few related clean-ups. r? `@petrochenkov`
Diffstat (limited to 'compiler/rustc_parse/src/parser/attr_wrapper.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/attr_wrapper.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/compiler/rustc_parse/src/parser/attr_wrapper.rs b/compiler/rustc_parse/src/parser/attr_wrapper.rs index 5ee9c339bb7..02749088c31 100644 --- a/compiler/rustc_parse/src/parser/attr_wrapper.rs +++ b/compiler/rustc_parse/src/parser/attr_wrapper.rs @@ -100,21 +100,16 @@ rustc_data_structures::static_assert_size!(LazyTokenStreamImpl, 144); impl CreateTokenStream for LazyTokenStreamImpl { fn create_token_stream(&self) -> AttrAnnotatedTokenStream { - // The token produced by the final call to `{,inlined_}next` or - // `{,inlined_}next_desugared` was not actually consumed by the - // callback. The combination of chaining the initial token and using - // `take` produces the desired result - we produce an empty - // `TokenStream` if no calls were made, and omit the final token - // otherwise. + // The token produced by the final call to `{,inlined_}next` was not + // actually consumed by the callback. The combination of chaining the + // initial token and using `take` produces the desired result - we + // produce an empty `TokenStream` if no calls were made, and omit the + // final token otherwise. let mut cursor_snapshot = self.cursor_snapshot.clone(); let tokens = std::iter::once((FlatToken::Token(self.start_token.0.clone()), self.start_token.1)) .chain((0..self.num_calls).map(|_| { - let token = if cursor_snapshot.desugar_doc_comments { - cursor_snapshot.next_desugared() - } else { - cursor_snapshot.next() - }; + let token = cursor_snapshot.next(cursor_snapshot.desugar_doc_comments); (FlatToken::Token(token.0), token.1) })) .take(self.num_calls); |
