From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- .../ui/overloaded/overloaded-index-autoderef.rs | 75 ---------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/test/ui/overloaded/overloaded-index-autoderef.rs (limited to 'src/test/ui/overloaded/overloaded-index-autoderef.rs') diff --git a/src/test/ui/overloaded/overloaded-index-autoderef.rs b/src/test/ui/overloaded/overloaded-index-autoderef.rs deleted file mode 100644 index 41f9efa8c..000000000 --- a/src/test/ui/overloaded/overloaded-index-autoderef.rs +++ /dev/null @@ -1,75 +0,0 @@ -// run-pass -#![allow(stable_features)] - -// Test overloaded indexing combined with autoderef. - -use std::ops::{Index, IndexMut}; - -struct Foo { - x: isize, - y: isize, -} - -impl Index for Foo { - type Output = isize; - - fn index(&self, z: isize) -> &isize { - if z == 0 { - &self.x - } else { - &self.y - } - } -} - -impl IndexMut for Foo { - fn index_mut(&mut self, z: isize) -> &mut isize { - if z == 0 { - &mut self.x - } else { - &mut self.y - } - } -} - -trait Int { - fn get(self) -> isize; - fn get_from_ref(&self) -> isize; - fn inc(&mut self); -} - -impl Int for isize { - fn get(self) -> isize { self } - fn get_from_ref(&self) -> isize { *self } - fn inc(&mut self) { *self += 1; } -} - -fn main() { - let mut f: Box<_> = Box::new(Foo { - x: 1, - y: 2, - }); - - assert_eq!(f[1], 2); - - f[0] = 3; - - assert_eq!(f[0], 3); - - // Test explicit IndexMut where `f` must be autoderef: - { - let p = &mut f[1]; - *p = 4; - } - - // Test explicit Index where `f` must be autoderef: - { - let p = &f[1]; - assert_eq!(*p, 4); - } - - // Test calling methods with `&mut self`, `self, and `&self` receivers: - f[1].inc(); - assert_eq!(f[1].get(), 5); - assert_eq!(f[1].get_from_ref(), 5); -} -- cgit v1.2.3