Add a test for proc macro generating `$ IDENT`

This commit is contained in:
Vadim Petrochenkov 2020-02-17 22:47:40 +03:00
parent 06fbb0b4fa
commit 950845c5b1
2 changed files with 35 additions and 0 deletions

View 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);
}
}

View 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() {}