codegen: Fix hygiene mismatch between function args uses and definitions

This commit is contained in:
Vadim Petrochenkov 2022-03-17 18:50:46 +03:00
parent b861d6a8fa
commit bed3a3dc18

View File

@ -774,14 +774,14 @@ impl ExportedFn {
syn::Type::Path(ref p) if p.path == string_type_path => {
is_string = true;
is_ref = false;
quote_spanned!(arg_type.span() =>
quote_spanned!(arg_type.span().resolved_at(Span::call_site()) =>
mem::take(args[#i]).into_string().unwrap()
)
}
_ => {
is_string = false;
is_ref = false;
quote_spanned!(arg_type.span() =>
quote_spanned!(arg_type.span().resolved_at(Span::call_site()) =>
mem::take(args[#i]).cast::<#arg_type>()
)
}