1
Fork 0

Rollup merge of #106525 - compiler-errors:new-solver-wf, r=jackh726

Report WF error for chalk *and* new solver

addressing this nit https://github.com/rust-lang/rust/pull/106385#discussion_r1062571070

No test yet because new solver is currently unusable, lol

r? `@lcnr`
This commit is contained in:
Michael Goulet 2023-01-06 21:53:59 -08:00 committed by GitHub
commit 258257a029
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 6 deletions

View file

@ -1168,7 +1168,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
} }
ty::PredicateKind::WellFormed(ty) => { ty::PredicateKind::WellFormed(ty) => {
if self.tcx.sess.opts.unstable_opts.trait_solver != TraitSolver::Chalk { if self.tcx.sess.opts.unstable_opts.trait_solver == TraitSolver::Classic {
// WF predicates cannot themselves make // WF predicates cannot themselves make
// errors. They can only block due to // errors. They can only block due to
// ambiguity; otherwise, they always // ambiguity; otherwise, they always
@ -1180,7 +1180,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
// which bounds actually failed to hold. // which bounds actually failed to hold.
self.tcx.sess.struct_span_err( self.tcx.sess.struct_span_err(
span, span,
&format!("the type `{}` is not well-formed (chalk)", ty), &format!("the type `{}` is not well-formed", ty),
) )
} }
} }

View file

@ -25,6 +25,6 @@ fn foo<T: Foo>() {
fn main() { fn main() {
// For some reason, the error is duplicated... // For some reason, the error is duplicated...
foo::<S>() //~ ERROR the type `S` is not well-formed (chalk) foo::<S>() //~ ERROR the type `S` is not well-formed
//~^ ERROR the type `S` is not well-formed (chalk) //~^ ERROR the type `S` is not well-formed
} }

View file

@ -1,10 +1,10 @@
error: the type `S` is not well-formed (chalk) error: the type `S` is not well-formed
--> $DIR/recursive_where_clause_on_type.rs:28:11 --> $DIR/recursive_where_clause_on_type.rs:28:11
| |
LL | foo::<S>() LL | foo::<S>()
| ^ | ^
error: the type `S` is not well-formed (chalk) error: the type `S` is not well-formed
--> $DIR/recursive_where_clause_on_type.rs:28:5 --> $DIR/recursive_where_clause_on_type.rs:28:5
| |
LL | foo::<S>() LL | foo::<S>()