From 948832d10ba2fe59c5c08c5642e5835a4d9922b9 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 10 Dec 2020 13:46:47 +0100 Subject: format_args: handle key-value arguments --- crates/hir_expand/src/builtin_macro.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'crates/hir_expand/src/builtin_macro.rs') diff --git a/crates/hir_expand/src/builtin_macro.rs b/crates/hir_expand/src/builtin_macro.rs index f60666a54..477192a09 100644 --- a/crates/hir_expand/src/builtin_macro.rs +++ b/crates/hir_expand/src/builtin_macro.rs @@ -245,6 +245,12 @@ fn format_args_expand( if args.is_empty() { return ExpandResult::only_err(mbe::ExpandError::NoMatchingRule); } + for arg in &mut args { + // Remove `key =`. + if matches!(arg.get(1), Some(tt::TokenTree::Leaf(tt::Leaf::Punct(p))) if p.char == '=') { + arg.drain(..2); + } + } let _format_string = args.remove(0); let arg_tts = args.into_iter().flat_map(|arg| { quote! { std::fmt::ArgumentV1::new(&(##arg), std::fmt::Display::fmt), } -- cgit v1.2.3