Skip to content

Commit f552794

Browse files
committed
Move Spacing into FlatToken.
It's only needed for the `FlatToken::Token` variant. This makes things a little more concise.
1 parent a88c4d6 commit f552794

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

compiler/rustc_parse/src/parser/attr_wrapper.rs

+12-16
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,8 @@ impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
103103
// produce an empty `TokenStream` if no calls were made, and omit the
104104
// final token otherwise.
105105
let mut cursor_snapshot = self.cursor_snapshot.clone();
106-
let tokens = iter::once((FlatToken::Token(self.start_token.0.clone()), self.start_token.1))
107-
.chain(iter::repeat_with(|| {
108-
let token = cursor_snapshot.next();
109-
(FlatToken::Token(token.0), token.1)
110-
}))
106+
let tokens = iter::once(FlatToken::Token(self.start_token.clone()))
107+
.chain(iter::repeat_with(|| FlatToken::Token(cursor_snapshot.next())))
111108
.take(self.num_calls as usize);
112109

113110
if self.replace_ranges.is_empty() {
@@ -156,11 +153,8 @@ impl ToAttrTokenStream for LazyAttrTokenStreamImpl {
156153
(range.start as usize)..(range.end as usize),
157154
target
158155
.into_iter()
159-
.map(|target| (FlatToken::AttrsTarget(target), Spacing::Alone))
160-
.chain(
161-
iter::repeat((FlatToken::Empty, Spacing::Alone))
162-
.take(range.len() - target_len),
163-
),
156+
.map(|target| FlatToken::AttrsTarget(target))
157+
.chain(iter::repeat(FlatToken::Empty).take(range.len() - target_len)),
164158
);
165159
}
166160
make_attr_token_stream(tokens.into_iter(), self.break_last_token)
@@ -367,7 +361,7 @@ impl<'a> Parser<'a> {
367361
/// `AttrTokenStream`, creating an `AttrTokenTree::Delimited` for each matching pair of open and
368362
/// close delims.
369363
fn make_attr_token_stream(
370-
iter: impl Iterator<Item = (FlatToken, Spacing)>,
364+
iter: impl Iterator<Item = FlatToken>,
371365
break_last_token: bool,
372366
) -> AttrTokenStream {
373367
#[derive(Debug)]
@@ -379,15 +373,15 @@ fn make_attr_token_stream(
379373
// The stack always has at least one element. Storing it separately makes for shorter code.
380374
let mut stack_top = FrameData { open_delim_sp: None, inner: vec![] };
381375
let mut stack_rest = vec![];
382-
for (token, spacing) in iter {
383-
match token {
384-
FlatToken::Token(Token { kind: TokenKind::OpenDelim(delim), span }) => {
376+
for flat_token in iter {
377+
match flat_token {
378+
FlatToken::Token((Token { kind: TokenKind::OpenDelim(delim), span }, spacing)) => {
385379
stack_rest.push(mem::replace(
386380
&mut stack_top,
387381
FrameData { open_delim_sp: Some((delim, span, spacing)), inner: vec![] },
388382
));
389383
}
390-
FlatToken::Token(Token { kind: TokenKind::CloseDelim(delim), span }) => {
384+
FlatToken::Token((Token { kind: TokenKind::CloseDelim(delim), span }, spacing)) => {
391385
let frame_data = mem::replace(&mut stack_top, stack_rest.pop().unwrap());
392386
let (open_delim, open_sp, open_spacing) = frame_data.open_delim_sp.unwrap();
393387
assert_eq!(
@@ -400,7 +394,9 @@ fn make_attr_token_stream(
400394
let delimited = AttrTokenTree::Delimited(dspan, dspacing, delim, stream);
401395
stack_top.inner.push(delimited);
402396
}
403-
FlatToken::Token(token) => stack_top.inner.push(AttrTokenTree::Token(token, spacing)),
397+
FlatToken::Token((token, spacing)) => {
398+
stack_top.inner.push(AttrTokenTree::Token(token, spacing))
399+
}
404400
FlatToken::AttrsTarget(target) => {
405401
stack_top.inner.push(AttrTokenTree::AttrsTarget(target))
406402
}

compiler/rustc_parse/src/parser/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1607,7 +1607,7 @@ pub(crate) fn make_unclosed_delims_error(
16071607
enum FlatToken {
16081608
/// A token - this holds both delimiter (e.g. '{' and '}')
16091609
/// and non-delimiter tokens
1610-
Token(Token),
1610+
Token((Token, Spacing)),
16111611
/// Holds the `AttrsTarget` for an AST node. The `AttrsTarget` is inserted
16121612
/// directly into the constructed `AttrTokenStream` as an
16131613
/// `AttrTokenTree::AttrsTarget`.

0 commit comments

Comments
 (0)