about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/attr_wrapper.rs
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2024-07-08 19:32:21 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2024-07-09 21:54:32 +1000
commitf5527949f2e819c056551a25d8fab7008facf6da (patch)
treec839b7ae3fdc897fbbb8d67764e6c353f4fd3c82 /compiler/rustc_parse/src/parser/attr_wrapper.rs
parenta88c4d67d9ea8a9f450638f207be867fa984bfce (diff)
downloadrust-f5527949f2e819c056551a25d8fab7008facf6da.tar.gz
rust-f5527949f2e819c056551a25d8fab7008facf6da.zip
Move `Spacing` into `FlatToken`.
It's only needed for the `FlatToken::Token` variant. This makes things a
little more concise.
Diffstat (limited to 'compiler/rustc_parse/src/parser/attr_wrapper.rs')
-rw-r--r--compiler/rustc_parse/src/parser/attr_wrapper.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/compiler/rustc_parse/src/parser/attr_wrapper.rs b/compiler/rustc_parse/src/parser/attr_wrapper.rs
index 5a4259eb1e7..67d2424bb48 100644
--- a/compiler/rustc_parse/src/parser/attr_wrapper.rs
+++ b/compiler/rustc_parse/src/parser/attr_wrapper.rs
@@ -103,11 +103,8 @@ impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
         // 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 = iter::once((FlatToken::Token(self.start_token.0.clone()), self.start_token.1))
-            .chain(iter::repeat_with(|| {
-                let token = cursor_snapshot.next();
-                (FlatToken::Token(token.0), token.1)
-            }))
+        let tokens = iter::once(FlatToken::Token(self.start_token.clone()))
+            .chain(iter::repeat_with(|| FlatToken::Token(cursor_snapshot.next())))
             .take(self.num_calls as usize);
 
         if self.replace_ranges.is_empty() {
@@ -156,11 +153,8 @@ impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
                     (range.start as usize)..(range.end as usize),
                     target
                         .into_iter()
-                        .map(|target| (FlatToken::AttrsTarget(target), Spacing::Alone))
-                        .chain(
-                            iter::repeat((FlatToken::Empty, Spacing::Alone))
-                                .take(range.len() - target_len),
-                        ),
+                        .map(|target| FlatToken::AttrsTarget(target))
+                        .chain(iter::repeat(FlatToken::Empty).take(range.len() - target_len)),
                 );
             }
             make_attr_token_stream(tokens.into_iter(), self.break_last_token)
@@ -367,7 +361,7 @@ impl<'a> Parser<'a> {
 /// `AttrTokenStream`, creating an `AttrTokenTree::Delimited` for each matching pair of open and
 /// close delims.
 fn make_attr_token_stream(
-    iter: impl Iterator<Item = (FlatToken, Spacing)>,
+    iter: impl Iterator<Item = FlatToken>,
     break_last_token: bool,
 ) -> AttrTokenStream {
     #[derive(Debug)]
@@ -379,15 +373,15 @@ fn make_attr_token_stream(
     // The stack always has at least one element. Storing it separately makes for shorter code.
     let mut stack_top = FrameData { open_delim_sp: None, inner: vec![] };
     let mut stack_rest = vec![];
-    for (token, spacing) in iter {
-        match token {
-            FlatToken::Token(Token { kind: TokenKind::OpenDelim(delim), span }) => {
+    for flat_token in iter {
+        match flat_token {
+            FlatToken::Token((Token { kind: TokenKind::OpenDelim(delim), span }, spacing)) => {
                 stack_rest.push(mem::replace(
                     &mut stack_top,
                     FrameData { open_delim_sp: Some((delim, span, spacing)), inner: vec![] },
                 ));
             }
-            FlatToken::Token(Token { kind: TokenKind::CloseDelim(delim), span }) => {
+            FlatToken::Token((Token { kind: TokenKind::CloseDelim(delim), span }, spacing)) => {
                 let frame_data = mem::replace(&mut stack_top, stack_rest.pop().unwrap());
                 let (open_delim, open_sp, open_spacing) = frame_data.open_delim_sp.unwrap();
                 assert_eq!(
@@ -400,7 +394,9 @@ fn make_attr_token_stream(
                 let delimited = AttrTokenTree::Delimited(dspan, dspacing, delim, stream);
                 stack_top.inner.push(delimited);
             }
-            FlatToken::Token(token) => stack_top.inner.push(AttrTokenTree::Token(token, spacing)),
+            FlatToken::Token((token, spacing)) => {
+                stack_top.inner.push(AttrTokenTree::Token(token, spacing))
+            }
             FlatToken::AttrsTarget(target) => {
                 stack_top.inner.push(AttrTokenTree::AttrsTarget(target))
             }