| //@ check-pass | |
| //@ revisions: current next | |
| //@ ignore-compare-mode-next-solver (explicit revisions) | |
| //@[next] compile-flags: -Znext-solver | |
| // Regression test for <https://github.com/rust-lang/trait-system-refactor-initiative/issues/214>. | |
| // See comment below. | |
| trait A { | |
| fn hello(&self) {} | |
| } | |
| trait B { | |
| fn hello(&self) {} | |
| } | |
| impl<T> A for T {} | |
| impl<T> B for T {} | |
| fn test<F, R>(q: F::Item) | |
| where | |
| F: Iterator<Item = R>, | |
| // We want to prefer `A` for `R.hello()` | |
| F::Item: A, | |
| { | |
| q.hello(); | |
| } | |
| fn main() {} |