diff options
| author | Michael Goulet <michael@errs.io> | 2022-06-27 15:43:23 -0700 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-06-28 22:34:13 +0000 |
| commit | f4fdcc7e24aefb1b75cbe075a475632b525c7a78 (patch) | |
| tree | 4b0f3a0cba2653175d78a9608746ae9c8c478d29 /compiler/rustc_borrowck | |
| parent | 830880640304ba8699c5f9a0c4665c38a3271963 (diff) | |
| download | rust-f4fdcc7e24aefb1b75cbe075a475632b525c7a78.tar.gz rust-f4fdcc7e24aefb1b75cbe075a475632b525c7a78.zip | |
Remove redundant logic to suggest `as_ref`
Diffstat (limited to 'compiler/rustc_borrowck')
| -rw-r--r-- | compiler/rustc_borrowck/src/diagnostics/move_errors.rs | 53 |
1 files changed, 7 insertions, 46 deletions
diff --git a/compiler/rustc_borrowck/src/diagnostics/move_errors.rs b/compiler/rustc_borrowck/src/diagnostics/move_errors.rs index eb5e61fa064..becb81b2e26 100644 --- a/compiler/rustc_borrowck/src/diagnostics/move_errors.rs +++ b/compiler/rustc_borrowck/src/diagnostics/move_errors.rs @@ -4,7 +4,7 @@ use rustc_middle::ty; use rustc_mir_dataflow::move_paths::{ IllegalMoveOrigin, IllegalMoveOriginKind, LookupResult, MoveError, MovePathIndex, }; -use rustc_span::{sym, Span}; +use rustc_span::Span; use crate::diagnostics::UseSpans; use crate::prefixes::PrefixSet; @@ -218,29 +218,13 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> { fn report(&mut self, error: GroupedMoveError<'tcx>) { let (mut err, err_span) = { - let (span, use_spans, original_path, kind, has_complex_bindings): ( - Span, - Option<UseSpans<'tcx>>, - Place<'tcx>, - &IllegalMoveOriginKind<'_>, - bool, - ) = match error { - GroupedMoveError::MovesFromPlace { - span, - original_path, - ref kind, - ref binds_to, - .. + let (span, use_spans, original_path, kind) = match error { + GroupedMoveError::MovesFromPlace { span, original_path, ref kind, .. } + | GroupedMoveError::MovesFromValue { span, original_path, ref kind, .. } => { + (span, None, original_path, kind) } - | GroupedMoveError::MovesFromValue { - span, - original_path, - ref kind, - ref binds_to, - .. - } => (span, None, original_path, kind, !binds_to.is_empty()), GroupedMoveError::OtherIllegalMove { use_spans, original_path, ref kind } => { - (use_spans.args_or_use(), Some(use_spans), original_path, kind, false) + (use_spans.args_or_use(), Some(use_spans), original_path, kind) } }; debug!( @@ -259,7 +243,6 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> { target_place, span, use_spans, - has_complex_bindings, ), &IllegalMoveOriginKind::InteriorOfTypeWithDestructor { container_ty: ty } => { self.cannot_move_out_of_interior_of_drop(span, ty) @@ -302,7 +285,6 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> { deref_target_place: Place<'tcx>, span: Span, use_spans: Option<UseSpans<'tcx>>, - has_complex_bindings: bool, ) -> DiagnosticBuilder<'a, ErrorGuaranteed> { // Inspect the type of the content behind the // borrow to provide feedback about why this @@ -399,28 +381,7 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> { } } }; - let ty = move_place.ty(self.body, self.infcx.tcx).ty; - let def_id = match *ty.kind() { - ty::Adt(self_def, _) => self_def.did(), - ty::Foreign(def_id) - | ty::FnDef(def_id, _) - | ty::Closure(def_id, _) - | ty::Generator(def_id, ..) - | ty::Opaque(def_id, _) => def_id, - _ => return err, - }; - let diag_name = self.infcx.tcx.get_diagnostic_name(def_id); - if matches!(diag_name, Some(sym::Option | sym::Result)) - && use_spans.map_or(true, |v| !v.for_closure()) - && !has_complex_bindings - { - err.span_suggestion_verbose( - span.shrink_to_hi(), - &format!("consider borrowing the `{}`'s content", diag_name.unwrap()), - ".as_ref()", - Applicability::MaybeIncorrect, - ); - } else if let Some(use_spans) = use_spans { + if let Some(use_spans) = use_spans { self.explain_captures( &mut err, span, span, use_spans, move_place, None, "", "", "", false, true, ); |
