mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 22:12:15 +00:00
ac26b883bf
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.
110 lines
4.4 KiB
Plaintext
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),
|
|
},
|
|
]
|