//@ 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() {}