From d9e4b939eaf478fc6760a2d1c7018f001fc4ffbd Mon Sep 17 00:00:00 2001 From: Jakob Hellermann Date: Mon, 14 Jul 2025 10:04:15 +0200 Subject: [PATCH] fix dangerous_implicit_deref lint --- src/vec.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/vec.rs b/src/vec.rs index d6e4da3..cb701b2 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -43,7 +43,7 @@ impl FrozenVec { unsafe { let vec = self.vec.get(); (*vec).push(val); - &*(&**(*vec).get_unchecked((*vec).len() - 1) as *const T::Target) + &*(&**(&*vec).get_unchecked((*vec).len() - 1) as *const T::Target) } } @@ -51,7 +51,7 @@ impl FrozenVec { pub fn get(&self, index: usize) -> Option<&T::Target> { unsafe { let vec = self.vec.get(); - (*vec).get(index).map(|x| &**x) + (&*vec).get(index).map(|x| &**x) } } @@ -62,7 +62,7 @@ impl FrozenVec { /// `index` must be in bounds, i.e. it must be less than `self.len()` pub unsafe fn get_unchecked(&self, index: usize) -> &T::Target { let vec = self.vec.get(); - (*vec).get_unchecked(index) + (&*vec).get_unchecked(index) } } @@ -71,7 +71,7 @@ impl FrozenVec { pub fn get_copy(&self, index: usize) -> Option { unsafe { let vec = self.vec.get(); - (*vec).get(index).copied() + (&*vec).get(index).copied() } } } @@ -108,7 +108,7 @@ impl FrozenVec { } } /// Returns an iterator over the vector. - pub fn iter(&self) -> Iter { + pub fn iter(&self) -> Iter<'_, T> { self.into_iter() } } @@ -316,6 +316,9 @@ fn test_accessors() { assert_eq!(vec.get(1), None); vec.push("a".to_string()); + + let item = vec.first().unwrap(); + vec.push("b".to_string()); vec.push("c".to_string()); @@ -324,6 +327,8 @@ fn test_accessors() { assert_eq!(vec.first(), Some("a")); assert_eq!(vec.last(), Some("c")); assert_eq!(vec.get(1), Some("b")); + + assert_eq!(item, "a"); } #[test]