about summary refs log tree commit diff
path: root/src/test/ui/traits/trait-upcasting/struct.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/traits/trait-upcasting/struct.rs')
-rw-r--r--src/test/ui/traits/trait-upcasting/struct.rs173
1 files changed, 0 insertions, 173 deletions
diff --git a/src/test/ui/traits/trait-upcasting/struct.rs b/src/test/ui/traits/trait-upcasting/struct.rs
deleted file mode 100644
index a3e41696956..00000000000
--- a/src/test/ui/traits/trait-upcasting/struct.rs
+++ /dev/null
@@ -1,173 +0,0 @@
-// run-pass
-
-#![feature(trait_upcasting)]
-
-use std::rc::Rc;
-use std::sync::Arc;
-
-trait Foo: PartialEq<i32> + std::fmt::Debug + Send + Sync {
-    fn a(&self) -> i32 {
-        10
-    }
-
-    fn z(&self) -> i32 {
-        11
-    }
-
-    fn y(&self) -> i32 {
-        12
-    }
-}
-
-trait Bar: Foo {
-    fn b(&self) -> i32 {
-        20
-    }
-
-    fn w(&self) -> i32 {
-        21
-    }
-}
-
-trait Baz: Bar {
-    fn c(&self) -> i32 {
-        30
-    }
-}
-
-impl Foo for i32 {
-    fn a(&self) -> i32 {
-        100
-    }
-}
-
-impl Bar for i32 {
-    fn b(&self) -> i32 {
-        200
-    }
-}
-
-impl Baz for i32 {
-    fn c(&self) -> i32 {
-        300
-    }
-}
-
-fn test_box() {
-    let v = Box::new(1);
-
-    let baz: Box<dyn Baz> = v.clone();
-    assert_eq!(*baz, 1);
-    assert_eq!(baz.a(), 100);
-    assert_eq!(baz.b(), 200);
-    assert_eq!(baz.c(), 300);
-    assert_eq!(baz.z(), 11);
-    assert_eq!(baz.y(), 12);
-    assert_eq!(baz.w(), 21);
-
-    let baz: Box<dyn Baz> = v.clone();
-    let bar: Box<dyn Bar> = baz;
-    assert_eq!(*bar, 1);
-    assert_eq!(bar.a(), 100);
-    assert_eq!(bar.b(), 200);
-    assert_eq!(bar.z(), 11);
-    assert_eq!(bar.y(), 12);
-    assert_eq!(bar.w(), 21);
-
-    let baz: Box<dyn Baz> = v.clone();
-    let foo: Box<dyn Foo> = baz;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-
-    let baz: Box<dyn Baz> = v.clone();
-    let bar: Box<dyn Bar> = baz;
-    let foo: Box<dyn Foo> = bar;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-}
-
-fn test_rc() {
-    let v = Rc::new(1);
-
-    let baz: Rc<dyn Baz> = v.clone();
-    assert_eq!(*baz, 1);
-    assert_eq!(baz.a(), 100);
-    assert_eq!(baz.b(), 200);
-    assert_eq!(baz.c(), 300);
-    assert_eq!(baz.z(), 11);
-    assert_eq!(baz.y(), 12);
-    assert_eq!(baz.w(), 21);
-
-    let baz: Rc<dyn Baz> = v.clone();
-    let bar: Rc<dyn Bar> = baz;
-    assert_eq!(*bar, 1);
-    assert_eq!(bar.a(), 100);
-    assert_eq!(bar.b(), 200);
-    assert_eq!(bar.z(), 11);
-    assert_eq!(bar.y(), 12);
-    assert_eq!(bar.w(), 21);
-
-    let baz: Rc<dyn Baz> = v.clone();
-    let foo: Rc<dyn Foo> = baz;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-
-    let baz: Rc<dyn Baz> = v.clone();
-    let bar: Rc<dyn Bar> = baz;
-    let foo: Rc<dyn Foo> = bar;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-}
-
-fn test_arc() {
-    let v = Arc::new(1);
-
-    let baz: Arc<dyn Baz> = v.clone();
-    assert_eq!(*baz, 1);
-    assert_eq!(baz.a(), 100);
-    assert_eq!(baz.b(), 200);
-    assert_eq!(baz.c(), 300);
-    assert_eq!(baz.z(), 11);
-    assert_eq!(baz.y(), 12);
-    assert_eq!(baz.w(), 21);
-
-    let baz: Arc<dyn Baz> = v.clone();
-    let bar: Arc<dyn Bar> = baz;
-    assert_eq!(*bar, 1);
-    assert_eq!(bar.a(), 100);
-    assert_eq!(bar.b(), 200);
-    assert_eq!(bar.z(), 11);
-    assert_eq!(bar.y(), 12);
-    assert_eq!(bar.w(), 21);
-
-    let baz: Arc<dyn Baz> = v.clone();
-    let foo: Arc<dyn Foo> = baz;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-
-    let baz: Arc<dyn Baz> = v.clone();
-    let bar: Arc<dyn Bar> = baz;
-    let foo: Arc<dyn Foo> = bar;
-    assert_eq!(*foo, 1);
-    assert_eq!(foo.a(), 100);
-    assert_eq!(foo.z(), 11);
-    assert_eq!(foo.y(), 12);
-}
-
-fn main() {
-    test_box();
-    test_rc();
-    test_arc();
-}