summaryrefslogtreecommitdiffstats
path: root/src/test/ui/traits/conditional-model-fn.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/traits/conditional-model-fn.rs')
-rw-r--r--src/test/ui/traits/conditional-model-fn.rs53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/test/ui/traits/conditional-model-fn.rs b/src/test/ui/traits/conditional-model-fn.rs
deleted file mode 100644
index ba8867003..000000000
--- a/src/test/ui/traits/conditional-model-fn.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-// run-pass
-#![allow(unused_imports)]
-// A model for how the `Fn` traits could work. You can implement at
-// most one of `Go`, `GoMut`, or `GoOnce`, and then the others follow
-// automatically.
-
-// aux-build:go_trait.rs
-
-extern crate go_trait;
-
-use go_trait::{Go, GoMut, GoOnce, go, go_mut, go_once};
-
-use std::rc::Rc;
-use std::cell::Cell;
-
-struct SomeGoableThing {
- counter: Rc<Cell<isize>>
-}
-
-impl Go for SomeGoableThing {
- fn go(&self, arg: isize) {
- self.counter.set(self.counter.get() + arg);
- }
-}
-
-struct SomeGoOnceableThing {
- counter: Rc<Cell<isize>>
-}
-
-impl GoOnce for SomeGoOnceableThing {
- fn go_once(self, arg: isize) {
- self.counter.set(self.counter.get() + arg);
- }
-}
-
-fn main() {
- let counter = Rc::new(Cell::new(0));
- let mut x = SomeGoableThing { counter: counter.clone() };
-
- go(&x, 10);
- assert_eq!(counter.get(), 10);
-
- go_mut(&mut x, 100);
- assert_eq!(counter.get(), 110);
-
- go_once(x, 1_000);
- assert_eq!(counter.get(), 1_110);
-
- let x = SomeGoOnceableThing { counter: counter.clone() };
-
- go_once(x, 10_000);
- assert_eq!(counter.get(), 11_110);
-}