From c70114d836e5bc36e2104188867e548e90ab38f4 Mon Sep 17 00:00:00 2001 From: Mingwei Samuel Date: Fri, 28 Jun 2024 13:55:53 -0700 Subject: [PATCH] fix(variadics): fix `HomogenousVariadic` `get` and `get_mut` only returning `None` (#1325) --- variadics/src/lib.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/variadics/src/lib.rs b/variadics/src/lib.rs index ac5dbe443c8a..24c643d6beca 100644 --- a/variadics/src/lib.rs +++ b/variadics/src/lib.rs @@ -330,7 +330,7 @@ where if i == 0 { Some(item) } else { - rest.get(i) + rest.get(i - 1) } } fn get_mut(&mut self, i: usize) -> Option<&mut T> { @@ -338,7 +338,7 @@ where if i == 0 { Some(item) } else { - rest.get_mut(i) + rest.get_mut(i - 1) } } @@ -470,4 +470,13 @@ mod test { ); assert!(ref_iter.next().is_none()); } + + #[test] + fn test_homogenous_get() { + let mut var = var_expr!(0, 1, 2, 3, 4); + for i in 0..5 { + assert_eq!(Some(i), var.get(i).copied()); + assert_eq!(Some(i), var.get_mut(i).copied()); + } + } }