INNER CODE UNIT · Rust

function_like_reverse_spans

intellij-rust/intellij-rust · testData/test-proc-macros/src/lib.rs:72

pub fn function_like_reverse_spans(item: TokenStream) -> TokenStream {
    let tts = item.into_iter().collect::<Vec<_>>();
    tts.iter().enumerate().map(|(i, tt)| {
        let mut tt2 = tt.clone();
        tt2.set_span(tts[tts.len() - 1 - i].span());
        tt2
    }).collect::<TokenStream>()
}

#[proc_macro_derive(DeriveImplForFoo)]
pub fn derive_impl_for_foo(_item: TokenStream) -> TokenStream {
   "impl Foo { fn foo(&self) -> Bar {} }".parse().unwrap()
}

#[proc_macro_derive(DeriveStructFooDeclaration)]
pub fn derive_struct_foo_declaration(_item: TokenStream) -> TokenStream {
   "struct Foo;".parse().unwrap()
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…