// Regression test for #135514 where the new solver didn't properly record deps for incremental // compilation, similarly to `track-deps-in-new-solver.rs`. // // In this specially crafted example, @steffahn was able to trigger unsoundness with an overlapping // impl that was accepted during the incremental rebuild. //@ revisions: cpass1 cfail2 //@ compile-flags: -Znext-solver pub trait Trait {} pub struct S0(T); pub struct S(T); impl Trait for S where S0: Trait {} pub struct W; pub trait Other { type Choose; } // first impl impl Other for T { type Choose = L; } // second impl impl Other for S { //[cfail2]~^ ERROR conflicting implementations of trait type Choose = R; } #[cfg(cpass1)] impl Trait for W {} #[cfg(cfail2)] impl Trait for S {} fn main() {}