// Ensure that structs with fields whose types contain diverging aliases are properly caught with
// both solvers.
// MCVE from https://github.com/rust-lang/trait-system-refactor-initiative/issues/139#issuecomment-2703127026.

//@ revisions: current next
//@ ignore-compare-mode-next-solver (explicit revisions)
//@ [next] compile-flags: -Znext-solver

#![feature(rustc_attrs)]
#![rustc_no_implicit_bounds]

trait Trait {
    type Diverges<D: Trait>;
}

impl<T> Trait for T {
    type Diverges<D: Trait> = D::Diverges<D>;
}

struct Foo {
    field: Box<<u8 as Trait>::Diverges<u8>>,
    //[current]~^ ERROR: overflow evaluating the requirement `<u8 as Trait>::Diverges<u8> == _`
    //[next]~^^ ERROR: type mismatch resolving `<u8 as Trait>::Diverges<u8> == _`
}

fn main() {}
