Skip to content

Commit

Permalink
add test for issue 135514
Browse files Browse the repository at this point in the history
  • Loading branch information
lqd committed Jan 15, 2025
1 parent 93ba568 commit 67a07e0
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions tests/incremental/overlapping-impls-in-new-solver-issue-135514.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// 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>(T);

pub struct S<T>(T);
impl<T> Trait for S<T> where S0<T>: Trait {}

pub struct W;

pub trait Other {
type Choose<L, R>;
}

// first impl
impl<T: Trait> Other for T {
type Choose<L, R> = L;
}

// second impl
impl<T> Other for S<T> {
//[cfail2]~^ ERROR conflicting implementations of trait
type Choose<L, R> = R;
}

#[cfg(cpass1)]
impl Trait for W {}

#[cfg(cfail2)]
impl Trait for S<W> {}

fn main() {}

0 comments on commit 67a07e0

Please sign in to comment.