mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-09 10:36:51 +00:00
Add a test for $:ident
in proc macro input
This commit is contained in:
parent
4d5ce340cd
commit
81e06dac84
25
src/test/ui/proc-macro/input-interpolated.rs
Normal file
25
src/test/ui/proc-macro/input-interpolated.rs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// Check what token streams proc macros see when interpolated tokens are passed to them as input.
|
||||||
|
|
||||||
|
// check-pass
|
||||||
|
// aux-build:test-macros.rs
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate test_macros;
|
||||||
|
|
||||||
|
macro_rules! pass_ident {
|
||||||
|
($i:ident) => {
|
||||||
|
fn f() {
|
||||||
|
print_bang!($i);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[print_attr]
|
||||||
|
const $i: u8 = 0;
|
||||||
|
|
||||||
|
#[derive(Print)]
|
||||||
|
struct $i {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
pass_ident!(A);
|
||||||
|
|
||||||
|
fn main() {}
|
69
src/test/ui/proc-macro/input-interpolated.stdout
Normal file
69
src/test/ui/proc-macro/input-interpolated.stdout
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
PRINT-BANG INPUT (DISPLAY): A
|
||||||
|
PRINT-BANG RE-COLLECTED (DISPLAY): A
|
||||||
|
PRINT-BANG INPUT (DEBUG): TokenStream [
|
||||||
|
Group {
|
||||||
|
delimiter: None,
|
||||||
|
stream: TokenStream [
|
||||||
|
Ident {
|
||||||
|
ident: "A",
|
||||||
|
span: #0 bytes(402..403),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
span: #3 bytes(269..271),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
PRINT-ATTR INPUT (DISPLAY): const A: u8 = 0;
|
||||||
|
PRINT-ATTR RE-COLLECTED (DISPLAY): const A : u8 = 0 ;
|
||||||
|
PRINT-ATTR INPUT (DEBUG): TokenStream [
|
||||||
|
Ident {
|
||||||
|
ident: "const",
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Ident {
|
||||||
|
ident: "A",
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Punct {
|
||||||
|
ch: ':',
|
||||||
|
spacing: Alone,
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Ident {
|
||||||
|
ident: "u8",
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Punct {
|
||||||
|
ch: '=',
|
||||||
|
spacing: Alone,
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Literal {
|
||||||
|
kind: Integer,
|
||||||
|
symbol: "0",
|
||||||
|
suffix: None,
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Punct {
|
||||||
|
ch: ';',
|
||||||
|
spacing: Alone,
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
PRINT-DERIVE INPUT (DISPLAY): struct A {
|
||||||
|
}
|
||||||
|
PRINT-DERIVE RE-COLLECTED (DISPLAY): struct A { }
|
||||||
|
PRINT-DERIVE INPUT (DEBUG): TokenStream [
|
||||||
|
Ident {
|
||||||
|
ident: "struct",
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Ident {
|
||||||
|
ident: "A",
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
Group {
|
||||||
|
delimiter: Brace,
|
||||||
|
stream: TokenStream [],
|
||||||
|
span: #0 bytes(0..0),
|
||||||
|
},
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user