diff options
| author | Esteban Kuber <esteban@kuber.com.ar> | 2021-09-12 20:36:58 +0000 |
|---|---|---|
| committer | Esteban Kuber <esteban@kuber.com.ar> | 2021-09-16 12:12:28 +0000 |
| commit | 1d8290568506e5d85422f23ab73ce79519201995 (patch) | |
| tree | b28bb322353aba77a4a1179005a247fedf64e767 /compiler | |
| parent | 88a532106034a271bcbb9c48339a306499b86eb9 (diff) | |
| download | rust-1d8290568506e5d85422f23ab73ce79519201995.tar.gz rust-1d8290568506e5d85422f23ab73ce79519201995.zip | |
Fix rebase
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs index c1f901af6fb..f006bede409 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs @@ -9,6 +9,7 @@ use crate::traits::normalize_projection_type; use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::stack::ensure_sufficient_stack; +use rustc_data_structures::sync::Lrc; use rustc_errors::{error_code, struct_span_err, Applicability, DiagnosticBuilder, Style}; use rustc_hir as hir; use rustc_hir::def::DefKind; @@ -678,19 +679,18 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> { has_custom_message: bool, ) -> bool { let span = obligation.cause.span; - let points_at_for_iter = matches!( - span.ctxt().outer_expn_data().kind, - ExpnKind::Desugaring(DesugaringKind::ForLoop(ForLoopLoc::IntoIter)) - ); - let code = - if let (ObligationCauseCode::FunctionArgumentObligation { parent_code, .. }, false) = - (&obligation.cause.code, points_at_for_iter) - { - parent_code.clone() - } else { - return false; - }; + let code = if let ObligationCauseCode::FunctionArgumentObligation { parent_code, .. } = + &obligation.cause.code + { + parent_code.clone() + } else if let ExpnKind::Desugaring(DesugaringKind::ForLoop(ForLoopLoc::IntoIter)) = + span.ctxt().outer_expn_data().kind + { + Lrc::new(obligation.cause.code.clone()) + } else { + return false; + }; // List of traits for which it would be nonsensical to suggest borrowing. // For instance, immutable references are always Copy, so suggesting to |
