| // Test that we syntactically reject *equality predicates*. | |
| // | |
| // It's a feature that was originally proposed as part of accepted RFC 135 (2014). It's never been | |
| // fully implemented and in the meantime design & implementation concerns have been raised. | |
| // Between Feb 2017 and Jun 2026 we accidentally accepted such predicates syntactically | |
| // (indeed, without any pre-expansion feature gate). | |
| // | |
| // We *might* add a more restricted version of this feature to the language in the future. | |
| // See discussions in tracking issue <https://github.com/rust-lang/rust/issues/20041> for details. | |
| #[cfg(false)] | |
| fn f<T: Iterator>(mut xs: T) -> Option<u8> | |
| where | |
| <T as Iterator>::Item == u8 | |
| //~^ ERROR general type equality constraints are not supported | |
| { | |
| xs.next() | |
| } | |
| fn main() {} |