From 039d582428795f2f31a8329456bc5357fa979e69 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Tue, 4 Aug 2020 13:21:43 +0200 Subject: [PATCH] Parse trailing commas in most macros --- macros/src/lib.rs | 4 ++-- src/tests.rs | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 310cc622..e913520b 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -499,7 +499,7 @@ impl Parse for Log { rest: if input.is_empty() { None } else { - Some((input.parse()?, Punctuated::parse_separated_nonempty(input)?)) + Some((input.parse()?, Punctuated::parse_terminated(input)?)) }, }) } @@ -627,7 +627,7 @@ impl Parse for Write { rest: if input.is_empty() { None } else { - Some((input.parse()?, Punctuated::parse_separated_nonempty(input)?)) + Some((input.parse()?, Punctuated::parse_terminated(input)?)) }, }) } diff --git a/src/tests.rs b/src/tests.rs index 2840074b..81633ffe 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -52,3 +52,26 @@ fn log_levels() { binfmt::warn!("test warn"); binfmt::error!("test error"); } + +#[test] +fn trailing_comma() { + binfmt::trace!("test trace",); + binfmt::debug!("test debug",); + binfmt::info!("test info",); + binfmt::warn!("test warn",); + binfmt::error!("test error",); + + binfmt::trace!("test trace {:?}", 0,); + binfmt::debug!("test debug {:?}", 0,); + binfmt::info!("test info {:?}", 0,); + binfmt::warn!("test warn {:?}", 0,); + binfmt::error!("test error {:?}", 0,); + + // Don't run this code, just check that it builds. + #[allow(unreachable_code, unused_variables)] + if false { + let fmt: binfmt::Formatter = panic!(); + binfmt::write!(fmt, "test write",); + binfmt::write!(fmt, "test write {:?}", 0,); + } +}