diff options
| author | Michael Goulet <michael@errs.io> | 2022-08-12 03:13:45 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-08-24 17:53:35 +0000 |
| commit | 4ff587263e0a7f2081e2ad5fd3e88460a94adbb5 (patch) | |
| tree | 77dc6690fee5514f4fdc20a9ea474b8a39bd6d41 /compiler/rustc_trait_selection/src/traits | |
| parent | 4e976262a1598fa48cd08fa0e429f05299d1ae3e (diff) | |
| download | rust-4ff587263e0a7f2081e2ad5fd3e88460a94adbb5.tar.gz rust-4ff587263e0a7f2081e2ad5fd3e88460a94adbb5.zip | |
Note binding obligation causes for const equate errors
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs index 70fac83325a..1f031d33e06 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs @@ -1506,13 +1506,26 @@ impl<'a, 'tcx> InferCtxtPrivExt<'a, 'tcx> for InferCtxt<'a, 'tcx> { .emit(); } FulfillmentErrorCode::CodeConstEquateError(ref expected_found, ref err) => { - self.report_mismatched_consts( + let mut diag = self.report_mismatched_consts( &error.obligation.cause, expected_found.expected, expected_found.found, err.clone(), - ) - .emit(); + ); + let code = error.obligation.cause.code().peel_derives().peel_match_impls(); + if let ObligationCauseCode::BindingObligation(..) + | ObligationCauseCode::ItemObligation(..) = code + { + self.note_obligation_cause_code( + &mut diag, + &error.obligation.predicate, + error.obligation.param_env, + code, + &mut vec![], + &mut Default::default(), + ); + } + diag.emit(); } } } |
