Implement #[proc_macro_attribute]
by abonander · Pull Request #38842 · rust-lang/rust (original) (raw)
I don't think it helps with borrows. Refactoring to something like this would be much nicer:
stmts.extend(custom_attrs.iter().map(|ca| { let name = cx.expr_str(ca.span, ca.function_name.name), let path = cx.expr_path(cx.path_global(ca.span, vec![ca.function_name])); let registrar = cx.expr_ident(ca.span, registrar); let ufcs_path = cx.path(span, vec![proc_macro, __internal, registry, register_custom_attribute]); cx.stmt_expr(cx.expr_call(span, cx.expr_path(ufcs_path), vec![registrar, name, path])) }));