From 449050a31a232191761158217e698840548d4af8 Mon Sep 17 00:00:00 2001 From: bolshoytoster Date: Tue, 25 Aug 2026 22:54:14 +0100 Subject: [PATCH 1/2] Deprecate smallvec! and smallvec_inline! --- src/lib.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 6ddc848e..1302832f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2641,6 +2641,7 @@ impl core::iter::FromIterator for SmallVec { } } +#[deprecated] #[macro_export] macro_rules! smallvec { ($elem:expr; $n:expr) => ({ @@ -2651,16 +2652,14 @@ macro_rules! smallvec { }); } +#[deprecated] #[macro_export] macro_rules! smallvec_inline { - // count helper: transform any expression into 1 - (@one $x:expr) => (1usize); ($elem:expr; $n:expr) => ({ $crate::SmallVec::<_, $n>::from_buf([$elem; $n]) }); ($($x:expr),+ $(,)?) => ({ - const N: usize = 0usize $(+ $crate::smallvec_inline!(@one $x))*; - $crate::SmallVec::<_, N>::from_buf([$($x),*]) + $crate::SmallVec::from_buf([$($x),*]) }); } From 14626817b496b1ed6303b10efbc7c0dbaad92183 Mon Sep 17 00:00:00 2001 From: bolshoytoster Date: Tue, 25 Aug 2026 23:50:27 +0100 Subject: [PATCH 2/2] Disallow single comma as macro input --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1302832f..e4418c69 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2658,8 +2658,8 @@ macro_rules! smallvec_inline { ($elem:expr; $n:expr) => ({ $crate::SmallVec::<_, $n>::from_buf([$elem; $n]) }); - ($($x:expr),+ $(,)?) => ({ - $crate::SmallVec::from_buf([$($x),*]) + ($($($x:expr),+$(,)?)?) => ({ + $crate::SmallVec::from_buf([$($($x),+)?]) }); }