PRINT-DERIVE INPUT (DISPLAY): struct Foo([bool; #[rustc_dummy(first)] #[rustc_dummy(second)] { #![rustc_dummy(third)] #[rustc_dummy(fourth)] 30 }]); PRINT-DERIVE DEEP-RE-COLLECTED (DISPLAY): struct Foo([bool; #[rustc_dummy(first)] #[rustc_dummy(second)] { #! [rustc_dummy(third)] #[rustc_dummy(fourth)] 30 }]); PRINT-DERIVE INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: $DIR/macro-rules-derive-cfg.rs:17:9: 17:15 (#3), }, Ident { ident: "Foo", span: $DIR/macro-rules-derive-cfg.rs:17:16: 17:19 (#3), }, Group { delimiter: Parenthesis, stream: TokenStream [ Group { delimiter: Bracket, stream: TokenStream [ Ident { ident: "bool", span: $DIR/macro-rules-derive-cfg.rs:18:14: 18:18 (#3), }, Punct { ch: ';', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:18:18: 18:19 (#3), }, Punct { ch: '#', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:18:20: 18:21 (#3), }, Group { delimiter: Bracket, stream: TokenStream [ Ident { ident: "rustc_dummy", span: $DIR/macro-rules-derive-cfg.rs:18:43: 18:54 (#3), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "first", span: $DIR/macro-rules-derive-cfg.rs:18:55: 18:60 (#3), }, ], span: $DIR/macro-rules-derive-cfg.rs:18:54: 18:61 (#3), }, ], span: $DIR/macro-rules-derive-cfg.rs:18:21: 18:63 (#3), }, Punct { ch: '#', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:23:13: 23:14 (#0), }, Group { delimiter: Bracket, stream: TokenStream [ Ident { ident: "rustc_dummy", span: $DIR/macro-rules-derive-cfg.rs:23:36: 23:47 (#0), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "second", span: $DIR/macro-rules-derive-cfg.rs:23:48: 23:54 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:23:47: 23:55 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:23:14: 23:57 (#0), }, Group { delimiter: Brace, stream: TokenStream [ Punct { ch: '#', spacing: Joint, span: $DIR/macro-rules-derive-cfg.rs:24:5: 24:6 (#0), }, Punct { ch: '!', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:24:6: 24:7 (#0), }, Group { delimiter: Bracket, stream: TokenStream [ Ident { ident: "rustc_dummy", span: $DIR/macro-rules-derive-cfg.rs:24:29: 24:40 (#0), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "third", span: $DIR/macro-rules-derive-cfg.rs:24:41: 24:46 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:24:40: 24:47 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:24:7: 24:49 (#0), }, Punct { ch: '#', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:25:5: 25:6 (#0), }, Group { delimiter: Bracket, stream: TokenStream [ Ident { ident: "rustc_dummy", span: $DIR/macro-rules-derive-cfg.rs:25:28: 25:39 (#0), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "fourth", span: $DIR/macro-rules-derive-cfg.rs:25:40: 25:46 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:25:39: 25:47 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:25:6: 25:49 (#0), }, Literal { kind: Integer, symbol: "30", suffix: None, span: $DIR/macro-rules-derive-cfg.rs:26:5: 26:7 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:23:58: 27:2 (#0), }, ], span: $DIR/macro-rules-derive-cfg.rs:18:13: 18:70 (#3), }, ], span: $DIR/macro-rules-derive-cfg.rs:17:19: 19:10 (#3), }, Punct { ch: ';', spacing: Alone, span: $DIR/macro-rules-derive-cfg.rs:19:10: 19:11 (#3), }, ]