1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//@ revisions: cfail1 cfail2 //@ compile-flags: -Znext-solver //@ check-pass pub trait Future { type Error; fn poll() -> Self::Error; } struct S; impl Future for S { type Error = Error; fn poll() -> Self::Error { todo!() } } #[cfg(cfail1)] pub struct Error(()); #[cfg(cfail2)] pub struct Error(); fn main() {}