summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-26186.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/issues/issue-26186.rs')
-rw-r--r--src/test/ui/issues/issue-26186.rs62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/test/ui/issues/issue-26186.rs b/src/test/ui/issues/issue-26186.rs
deleted file mode 100644
index f93869352..000000000
--- a/src/test/ui/issues/issue-26186.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-// check-pass
-use std::sync::Mutex;
-use std::cell::RefCell;
-use std::rc::Rc;
-use std::ops::*;
-
-//eefriedman example
-struct S<'a, T:FnMut() + 'static + ?Sized>(&'a mut T);
-impl<'a, T:?Sized + FnMut() + 'static> DerefMut for S<'a, T> {
- fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 }
-}
-impl<'a, T:?Sized + FnMut() + 'static> Deref for S<'a, T> {
- type Target = dyn FnMut() + 'a;
- fn deref(&self) -> &Self::Target { &self.0 }
-}
-
-//Ossipal example
-struct FunctionIcon {
- get_icon: Mutex<Box<dyn FnMut() -> u32>>,
-}
-
-impl FunctionIcon {
- fn get_icon(&self) -> impl '_ + std::ops::DerefMut<Target=Box<dyn FnMut() -> u32>> {
- self.get_icon.lock().unwrap()
- }
-
- fn load_icon(&self) {
- let mut get_icon = self.get_icon();
- let _rgba_icon = (*get_icon)();
- }
-}
-
-//shepmaster example
-struct Foo;
-
-impl Deref for Foo {
- type Target = dyn FnMut() + 'static;
- fn deref(&self) -> &Self::Target {
- unimplemented!()
- }
-}
-
-impl DerefMut for Foo {
- fn deref_mut(&mut self) -> &mut Self::Target {
- unimplemented!()
- }
-}
-
-fn main() {
- //eefriedman example
- let mut f = ||{};
- let mut s = S(&mut f);
- s();
-
- //Diggsey/Mark-Simulacrum example
- let a: Rc<RefCell<dyn FnMut()>> = Rc::new(RefCell::new(||{}));
- a.borrow_mut()();
-
- //shepmaster example
- let mut t = Foo;
- t();
-}