diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/proc-macro/auxiliary/weird-hygiene.rs | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/proc-macro/auxiliary/weird-hygiene.rs')
-rw-r--r-- | src/test/ui/proc-macro/auxiliary/weird-hygiene.rs | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/test/ui/proc-macro/auxiliary/weird-hygiene.rs b/src/test/ui/proc-macro/auxiliary/weird-hygiene.rs deleted file mode 100644 index 338e436df..000000000 --- a/src/test/ui/proc-macro/auxiliary/weird-hygiene.rs +++ /dev/null @@ -1,48 +0,0 @@ -// force-host -// no-prefer-dynamic - -#![crate_type = "proc-macro"] - -extern crate proc_macro; - -use proc_macro::{TokenStream, TokenTree, Group}; - -fn find_my_ident(tokens: TokenStream) -> Option<TokenStream> { - for token in tokens { - if let TokenTree::Ident(ident) = &token { - if ident.to_string() == "hidden_ident" { - return Some(vec![token].into_iter().collect()) - } - } else if let TokenTree::Group(g) = token { - if let Some(stream) = find_my_ident(g.stream()) { - return Some(stream) - } - } - } - return None; -} - - -#[proc_macro_derive(WeirdDerive)] -pub fn weird_derive(item: TokenStream) -> TokenStream { - let my_ident = find_my_ident(item).expect("Missing 'my_ident'!"); - let tokens: TokenStream = "call_it!();".parse().unwrap(); - let final_call = tokens.into_iter().map(|tree| { - if let TokenTree::Group(g) = tree { - return Group::new(g.delimiter(), my_ident.clone()).into() - } else { - return tree - } - }).collect(); - final_call -} - -#[proc_macro] -pub fn recollect(item: TokenStream) -> TokenStream { - item.into_iter().collect() -} - -#[proc_macro_attribute] -pub fn recollect_attr(_attr: TokenStream, mut item: TokenStream) -> TokenStream { - item.into_iter().collect() -} |