diff options
Diffstat (limited to 'compiler/rustc_trait_selection/src')
| -rw-r--r-- | compiler/rustc_trait_selection/src/error_reporting/infer/region.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs b/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs index 0473c73ef62..0372105a02b 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/infer/region.rs @@ -625,11 +625,19 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> { if let ObligationCauseCode::WhereClause(_, span) | ObligationCauseCode::WhereClauseInExpr(_, span, ..) = &trace.cause.code().peel_derives() - && !span.is_dummy() { let span = *span; - self.report_concrete_failure(generic_param_scope, placeholder_origin, sub, sup) - .with_span_note(span, "the lifetime requirement is introduced here") + let mut err = self.report_concrete_failure( + generic_param_scope, + placeholder_origin, + sub, + sup, + ); + if !span.is_dummy() { + err = + err.with_span_note(span, "the lifetime requirement is introduced here"); + } + err } else { unreachable!( "control flow ensures we have a `BindingObligation` or `WhereClauseInExpr` here..." |
