mirror of https://github.com/rust-lang/rust.git
25 lines
762 B
Rust
25 lines
762 B
Rust
//@ revisions: current next
|
|
//@ ignore-compare-mode-next-solver (explicit revisions)
|
|
//@[next] compile-flags: -Znext-solver
|
|
//@ check-pass
|
|
|
|
// Regression test for trait-system-refactor-initiative#176.
|
|
//
|
|
// Normalizing `<Vec<T> as IntoIterator>::IntoIter` has two candidates
|
|
// inside of the function:
|
|
// - `impl<T> IntoIterator for Vec<T>` which trivially applies
|
|
// - `impl<I: Iterator> IntoIterator for I`
|
|
// - requires `Vec<T>: Iterator`
|
|
// - where-clause requires `<Vec<T> as IntoIterator>::IntoIter eq Vec<T>`
|
|
// - normalize `<Vec<T> as IntoIterator>::IntoIter` again, cycle
|
|
//
|
|
// We need to treat this cycle as an error to be able to use the actual impl.
|
|
|
|
fn test<T>()
|
|
where
|
|
<Vec<T> as IntoIterator>::IntoIter: Iterator,
|
|
{
|
|
}
|
|
|
|
fn main() {}
|