mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
proc_macro_harness: adjust the span we use for const fn calls
This commit is contained in:
parent
a0215d8e46
commit
3854e16fa2
@ -313,14 +313,23 @@ fn mk_decls(cx: &mut ExtCtxt<'_>, macros: &[ProcMacro]) -> P<ast::Item> {
|
|||||||
match m {
|
match m {
|
||||||
ProcMacro::Derive(cd) => {
|
ProcMacro::Derive(cd) => {
|
||||||
cx.resolver.declare_proc_macro(cd.id);
|
cx.resolver.declare_proc_macro(cd.id);
|
||||||
cx.expr_call(span, proc_macro_ty_method_path(cx, custom_derive), thin_vec![
|
// The call needs to use `harness_span` so that the const stability checker
|
||||||
cx.expr_str(span, cd.trait_name),
|
// accepts it.
|
||||||
cx.expr_array_ref(
|
cx.expr_call(
|
||||||
span,
|
harness_span,
|
||||||
cd.attrs.iter().map(|&s| cx.expr_str(span, s)).collect::<ThinVec<_>>(),
|
proc_macro_ty_method_path(cx, custom_derive),
|
||||||
),
|
thin_vec![
|
||||||
local_path(cx, cd.function_name),
|
cx.expr_str(span, cd.trait_name),
|
||||||
])
|
cx.expr_array_ref(
|
||||||
|
span,
|
||||||
|
cd.attrs
|
||||||
|
.iter()
|
||||||
|
.map(|&s| cx.expr_str(span, s))
|
||||||
|
.collect::<ThinVec<_>>(),
|
||||||
|
),
|
||||||
|
local_path(cx, cd.function_name),
|
||||||
|
],
|
||||||
|
)
|
||||||
}
|
}
|
||||||
ProcMacro::Attr(ca) | ProcMacro::Bang(ca) => {
|
ProcMacro::Attr(ca) | ProcMacro::Bang(ca) => {
|
||||||
cx.resolver.declare_proc_macro(ca.id);
|
cx.resolver.declare_proc_macro(ca.id);
|
||||||
@ -330,7 +339,9 @@ fn mk_decls(cx: &mut ExtCtxt<'_>, macros: &[ProcMacro]) -> P<ast::Item> {
|
|||||||
ProcMacro::Derive(_) => unreachable!(),
|
ProcMacro::Derive(_) => unreachable!(),
|
||||||
};
|
};
|
||||||
|
|
||||||
cx.expr_call(span, proc_macro_ty_method_path(cx, ident), thin_vec![
|
// The call needs to use `harness_span` so that the const stability checker
|
||||||
|
// accepts it.
|
||||||
|
cx.expr_call(harness_span, proc_macro_ty_method_path(cx, ident), thin_vec![
|
||||||
cx.expr_str(span, ca.function_name.name),
|
cx.expr_str(span, ca.function_name.name),
|
||||||
local_path(cx, ca.function_name),
|
local_path(cx, ca.function_name),
|
||||||
])
|
])
|
||||||
|
Loading…
Reference in New Issue
Block a user