2 #![allow(unused_variables)]
3 #![allow(stable_features)]
4 // Test a very simple custom DST coercion.
6 #![feature(core, rc_weak)]
8 use std::cell::RefCell;
9 use std::rc::{Rc, Weak};
16 fn get(&self) -> i32 {
22 let a: Rc<[i32; 3]> = Rc::new([1, 2, 3]);
28 let a: Rc<i32> = Rc::new(42);
29 let b: Rc<dyn Baz> = a.clone();
30 assert_eq!(b.get(), 42);
32 let c: Weak<i32> = Rc::downgrade(&a);
33 let d: Weak<dyn Baz> = c.clone();
37 let a: Rc<RefCell<i32>> = Rc::new(RefCell::new(42));
38 let b: Rc<RefCell<dyn Baz>> = a.clone();
39 assert_eq!(b.borrow().get(), 42);
41 let c: Weak<RefCell<dyn Baz>> = Rc::downgrade(&a) as Weak<_>;