From ba05ca6962dcccfffe3d48c8cd69ed1a75bb93ca Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Fri, 7 Mar 2014 18:07:25 +1100 Subject: [PATCH] std: stop `vec!()` warning about unused mutability. If no arguments are given to `vec!` then no pushes are emitted and so the compiler (rightly) complains that the mutability of `temp` is never used. This behaviour is rather annoying for users. --- src/libstd/macros.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libstd/macros.rs b/src/libstd/macros.rs index ba72e1f2549bb..f0ea90a4aed77 100644 --- a/src/libstd/macros.rs +++ b/src/libstd/macros.rs @@ -366,12 +366,14 @@ macro_rules! try( ($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(e) }) ) +/// Create a `std::vec_ng::Vec` containing the arguments. #[macro_export] macro_rules! vec( ($($e:expr),*) => ({ - let mut temp = ::std::vec_ng::Vec::new(); - $(temp.push($e);)* - temp + // leading _ to allow empty construction without a warning. + let mut _temp = ::std::vec_ng::Vec::new(); + $(_temp.push($e);)* + _temp }) )