rust/tests/ui/proc-macro/expand-to-derive.stdout
Nicholas Nethercote ac26b883bf Improve spans on evaluated cfg_attrs.
When converting something like `#![cfg_attr(cond, attr)]` into
`#![attr]`, we currently duplicate the `#` token and the `!` token. But
weirdly, there is also this comment:

// We don't really have a good span to use for the synthesized `[]`
// in `#[attr]`, so just use the span of the `#` token.

Maybe that comment used to be true? But now it is false: we can
duplicate the existing delimiters (and their spans and spacing), much
like we do for the `#` and `!`.

This commit does that, thus removing the incorrect comment, and
improving the spans on `Group`s in a few proc-macro tests.
2024-07-24 21:03:52 +10:00

110 lines
4.4 KiB
Plaintext

PRINT-DERIVE INPUT (DISPLAY): struct Foo
{
field :
[bool; { #[rustc_dummy] struct Inner { other_inner_field: u8, } 0 }]
}
PRINT-DERIVE DEEP-RE-COLLECTED (DISPLAY): struct Foo
{
field :
[bool; { #[rustc_dummy] struct Inner { other_inner_field : u8, } 0 }]
}
PRINT-DERIVE INPUT (DEBUG): TokenStream [
Ident {
ident: "struct",
span: $DIR/expand-to-derive.rs:16:9: 16:15 (#3),
},
Ident {
ident: "Foo",
span: $DIR/expand-to-derive.rs:16:16: 16:19 (#3),
},
Group {
delimiter: Brace,
stream: TokenStream [
Ident {
ident: "field",
span: $DIR/expand-to-derive.rs:18:13: 18:18 (#3),
},
Punct {
ch: ':',
spacing: Alone,
span: $DIR/expand-to-derive.rs:18:18: 18:19 (#3),
},
Group {
delimiter: Bracket,
stream: TokenStream [
Ident {
ident: "bool",
span: $DIR/expand-to-derive.rs:18:21: 18:25 (#3),
},
Punct {
ch: ';',
spacing: Alone,
span: $DIR/expand-to-derive.rs:18:25: 18:26 (#3),
},
Group {
delimiter: Brace,
stream: TokenStream [
Punct {
ch: '#',
spacing: Alone,
span: $DIR/expand-to-derive.rs:27:5: 27:6 (#0),
},
Group {
delimiter: Bracket,
stream: TokenStream [
Ident {
ident: "rustc_dummy",
span: $DIR/expand-to-derive.rs:27:28: 27:39 (#0),
},
],
span: $DIR/expand-to-derive.rs:27:6: 27:41 (#0),
},
Ident {
ident: "struct",
span: $DIR/expand-to-derive.rs:28:5: 28:11 (#0),
},
Ident {
ident: "Inner",
span: $DIR/expand-to-derive.rs:28:12: 28:17 (#0),
},
Group {
delimiter: Brace,
stream: TokenStream [
Ident {
ident: "other_inner_field",
span: $DIR/expand-to-derive.rs:30:9: 30:26 (#0),
},
Punct {
ch: ':',
spacing: Alone,
span: $DIR/expand-to-derive.rs:30:26: 30:27 (#0),
},
Ident {
ident: "u8",
span: $DIR/expand-to-derive.rs:30:28: 30:30 (#0),
},
Punct {
ch: ',',
spacing: Alone,
span: $DIR/expand-to-derive.rs:30:30: 30:31 (#0),
},
],
span: $DIR/expand-to-derive.rs:28:18: 31:6 (#0),
},
Literal {
kind: Integer,
symbol: "0",
suffix: None,
span: $DIR/expand-to-derive.rs:20:17: 20:18 (#3),
},
],
span: $DIR/expand-to-derive.rs:18:27: 21:14 (#3),
},
],
span: $DIR/expand-to-derive.rs:18:20: 21:15 (#3),
},
],
span: $DIR/expand-to-derive.rs:16:20: 22:10 (#3),
},
]