dont discard overflow from normalizes-to goals
This commit is contained in:
parent
ca718ffd2d
commit
4a38442c90
6 changed files with 82 additions and 23 deletions
|
@ -0,0 +1,25 @@
|
|||
// compile-flags: -Znext-solver=coherence
|
||||
// check-pass
|
||||
|
||||
// A regression test for trait-system-refactor-initiative#70.
|
||||
|
||||
trait Trait {
|
||||
type Assoc;
|
||||
}
|
||||
|
||||
struct W<T: ?Sized>(*mut T);
|
||||
impl<T: ?Sized> Trait for W<W<T>>
|
||||
where
|
||||
W<T>: Trait,
|
||||
{
|
||||
type Assoc = ();
|
||||
}
|
||||
|
||||
trait NoOverlap {}
|
||||
impl<T: Trait<Assoc = u32>> NoOverlap for T {}
|
||||
// `Projection(<W<_> as Trait>::Assoc, u32)` should result in error even
|
||||
// though applying the impl results in overflow. This is necessary to match
|
||||
// the behavior of the old solver.
|
||||
impl<T: ?Sized> NoOverlap for W<T> {}
|
||||
|
||||
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue