diff options
Diffstat (limited to 'src/test/ui/issues/issue-67039-unsound-pin-partialeq.rs')
-rw-r--r-- | src/test/ui/issues/issue-67039-unsound-pin-partialeq.rs | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/src/test/ui/issues/issue-67039-unsound-pin-partialeq.rs b/src/test/ui/issues/issue-67039-unsound-pin-partialeq.rs deleted file mode 100644 index a496e58a7..000000000 --- a/src/test/ui/issues/issue-67039-unsound-pin-partialeq.rs +++ /dev/null @@ -1,27 +0,0 @@ -// Pin's PartialEq implementation allowed to access the pointer allowing for -// unsoundness by using Rc::get_mut to move value within Rc. -// See https://internals.rust-lang.org/t/unsoundness-in-pin/11311/73 for more details. - -use std::ops::Deref; -use std::pin::Pin; -use std::rc::Rc; - -struct Apple; - -impl Deref for Apple { - type Target = Apple; - fn deref(&self) -> &Apple { - &Apple - } -} - -impl PartialEq<Rc<Apple>> for Apple { - fn eq(&self, _rc: &Rc<Apple>) -> bool { - unreachable!() - } -} - -fn main() { - let _ = Pin::new(Apple) == Rc::pin(Apple); - //~^ ERROR type mismatch resolving -} |