| //@ run-pass | |
| #![feature(trait_alias)] | |
| trait Foo = PartialEq<i32> + Send; | |
| trait Bar = Foo + Sync; | |
| trait I32Iterator = Iterator<Item = i32>; | |
| pub fn main() { | |
| let a: &dyn Bar = &123; | |
| assert!(*a == 123); | |
| let b = Box::new(456) as Box<dyn Foo>; | |
| assert!(*b == 456); | |
| let c: &mut dyn I32Iterator = &mut vec![123].into_iter(); | |
| assert_eq!(c.next(), Some(123)); | |
| } |