| //@ run-pass | |
| // | |
| // issue: <https://github.com/rust-lang/rust/issues/131813> | |
| trait Pollable { | |
| #[allow(unused)] | |
| fn poll(&self) {} | |
| } | |
| trait FileIo: Pollable + Send + Sync { | |
| fn read(&self) {} | |
| } | |
| trait Terminal: Send + Sync + FileIo {} | |
| struct A; | |
| impl Pollable for A {} | |
| impl FileIo for A {} | |
| impl Terminal for A {} | |
| fn main() { | |
| let a = A; | |
| let b = &a as &dyn Terminal; | |
| let c = b as &dyn FileIo; | |
| c.read(); | |
| } |