PRINT-BANG INPUT (DISPLAY): struct M ($crate :: S) ; PRINT-BANG INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #3 bytes(LO..HI), }, Ident { ident: "M", span: #3 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #3 bytes(LO..HI), }, Ident { ident: "S", span: #3 bytes(LO..HI), }, ], span: #3 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #3 bytes(LO..HI), }, ] PRINT-ATTR INPUT (DISPLAY): struct A(crate::S); PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ($crate :: S) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #3 bytes(LO..HI), }, Ident { ident: "A", span: #3 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #3 bytes(LO..HI), }, Ident { ident: "S", span: #3 bytes(LO..HI), }, ], span: #3 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #3 bytes(LO..HI), }, ] PRINT-DERIVE INPUT (DISPLAY): struct D(crate::S); PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ($crate :: S) ; PRINT-DERIVE INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #3 bytes(LO..HI), }, Ident { ident: "D", span: #3 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #3 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #3 bytes(LO..HI), }, Ident { ident: "S", span: #3 bytes(LO..HI), }, ], span: #3 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #3 bytes(LO..HI), }, ] PRINT-BANG INPUT (DISPLAY): struct M ($crate :: S) ; PRINT-BANG INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #10 bytes(LO..HI), }, Ident { ident: "M", span: #10 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #10 bytes(LO..HI), }, Ident { ident: "S", span: #10 bytes(LO..HI), }, ], span: #10 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #10 bytes(LO..HI), }, ] PRINT-ATTR INPUT (DISPLAY): struct A(::dollar_crate_external::S); PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ($crate :: S) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #10 bytes(LO..HI), }, Ident { ident: "A", span: #10 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #10 bytes(LO..HI), }, Ident { ident: "S", span: #10 bytes(LO..HI), }, ], span: #10 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #10 bytes(LO..HI), }, ] PRINT-DERIVE INPUT (DISPLAY): struct D(::dollar_crate_external::S); PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ($crate :: S) ; PRINT-DERIVE INPUT (DEBUG): TokenStream [ Ident { ident: "struct", span: #10 bytes(LO..HI), }, Ident { ident: "D", span: #10 bytes(LO..HI), }, Group { delimiter: Parenthesis, stream: TokenStream [ Ident { ident: "$crate", span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Joint, span: #10 bytes(LO..HI), }, Punct { ch: ':', spacing: Alone, span: #10 bytes(LO..HI), }, Ident { ident: "S", span: #10 bytes(LO..HI), }, ], span: #10 bytes(LO..HI), }, Punct { ch: ';', spacing: Alone, span: #10 bytes(LO..HI), }, ]