Use PredicateObligations instead of Predicates

Keep more information about trait binding failures.
This commit is contained in:
Esteban Küber 2020-03-03 15:07:04 -08:00
parent 485c5fb6e1
commit bd7ea5441e
90 changed files with 280 additions and 141 deletions

View file

@ -2,7 +2,7 @@ error[E0277]: `*const Bar` cannot be shared between threads safely
--> $DIR/recursive-requirements.rs:16:12
|
LL | struct AssertSync<T: Sync>(PhantomData<T>);
| ------------------------------------------- required by `AssertSync`
| ---------- ---- required by this bound in `AssertSync`
...
LL | let _: AssertSync<Foo> = unimplemented!();
| ^^^^^^^^^^^^^^^ `*const Bar` cannot be shared between threads safely
@ -14,7 +14,7 @@ error[E0277]: `*const Foo` cannot be shared between threads safely
--> $DIR/recursive-requirements.rs:16:12
|
LL | struct AssertSync<T: Sync>(PhantomData<T>);
| ------------------------------------------- required by `AssertSync`
| ---------- ---- required by this bound in `AssertSync`
...
LL | let _: AssertSync<Foo> = unimplemented!();
| ^^^^^^^^^^^^^^^ `*const Foo` cannot be shared between threads safely