Add a test for proc macro generating $ IDENT
This commit is contained in:
parent
06fbb0b4fa
commit
950845c5b1
17
src/test/ui/proc-macro/auxiliary/generate-dollar-ident.rs
Normal file
17
src/test/ui/proc-macro/auxiliary/generate-dollar-ident.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// force-host
|
||||
// no-prefer-dynamic
|
||||
|
||||
#![feature(proc_macro_hygiene)]
|
||||
#![feature(proc_macro_quote)]
|
||||
#![crate_type = "proc-macro"]
|
||||
|
||||
extern crate proc_macro;
|
||||
use proc_macro::*;
|
||||
|
||||
#[proc_macro]
|
||||
pub fn dollar_ident(input: TokenStream) -> TokenStream {
|
||||
let black_hole = input.into_iter().next().unwrap();
|
||||
quote! {
|
||||
$black_hole!($$var);
|
||||
}
|
||||
}
|
18
src/test/ui/proc-macro/generate-dollar-ident.rs
Normal file
18
src/test/ui/proc-macro/generate-dollar-ident.rs
Normal file
@ -0,0 +1,18 @@
|
||||
// Proc macros can generate token sequence `$ IDENT`
|
||||
// without it being recognized as an unknown macro variable.
|
||||
|
||||
// check-pass
|
||||
// aux-build:generate-dollar-ident.rs
|
||||
|
||||
extern crate generate_dollar_ident;
|
||||
use generate_dollar_ident::*;
|
||||
|
||||
macro_rules! black_hole {
|
||||
($($tt:tt)*) => {};
|
||||
}
|
||||
|
||||
black_hole!($var);
|
||||
|
||||
dollar_ident!(black_hole);
|
||||
|
||||
fn main() {}
|
Loading…
x
Reference in New Issue
Block a user