From c31c60cbb9ceb75402240bfe1adc9c2b48a29aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Wed, 3 Jan 2018 14:22:38 -0800 Subject: [PATCH] Reword diagnostic --- src/librustc/infer/error_reporting/mod.rs | 16 ++++++---------- src/test/ui/borrowck/issue-45983.stderr | 6 +++--- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/librustc/infer/error_reporting/mod.rs b/src/librustc/infer/error_reporting/mod.rs index 3cd7c5e0af3e..cdb90c7ba7e9 100644 --- a/src/librustc/infer/error_reporting/mod.rs +++ b/src/librustc/infer/error_reporting/mod.rs @@ -1071,7 +1071,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> { // #45983: when trying to assign the contents of an argument to a binding outside of a // closure, provide a specific message pointing this out. if let (&SubregionOrigin::BindingTypeIsNotValidAtDecl(ref external_span), - &SubregionOrigin::Subtype(TypeTrace { ref cause, .. }), + &SubregionOrigin::Subtype(_), &RegionKind::ReFree(ref free_region)) = (&sub_origin, &sup_origin, sup_region) { let hir = &self.tcx.hir; if let Some(node_id) = hir.as_local_node_id(free_region.scope) { @@ -1084,15 +1084,11 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> { let mut err = self.tcx.sess.struct_span_err( sp, "borrowed data cannot be moved outside of its closure"); - let label = match cause.code { - ObligationCauseCode::ExprAssignable => { - "cannot be assigned to binding outside of its closure" - } - _ => "cannot be moved outside of its closure", - }; - err.span_label(sp, label); - err.span_label(*closure_span, "closure you can't escape"); - err.span_label(*external_span, "binding declared outside of closure"); + err.span_label(sp, "cannot be moved outside of its closure"); + err.span_label(*external_span, + "borrowed data cannot be moved into here..."); + err.span_label(*closure_span, + "...because it cannot outlive this closure"); err.emit(); return; } diff --git a/src/test/ui/borrowck/issue-45983.stderr b/src/test/ui/borrowck/issue-45983.stderr index 689fe6053c9a..cbc4a557be9e 100644 --- a/src/test/ui/borrowck/issue-45983.stderr +++ b/src/test/ui/borrowck/issue-45983.stderr @@ -2,11 +2,11 @@ error: borrowed data cannot be moved outside of its closure --> $DIR/issue-45983.rs:17:27 | 16 | let x = None; - | - binding declared outside of closure + | - borrowed data cannot be moved into here... 17 | give_any(|y| x = Some(y)); - | --- ^ cannot be assigned to binding outside of its closure + | --- ^ cannot be moved outside of its closure | | - | closure you can't escape + | ...because it cannot outlive this closure error: aborting due to previous error