diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2018-01-03 14:22:38 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2018-01-15 07:04:38 -0800 |
| commit | c31c60cbb9ceb75402240bfe1adc9c2b48a29aa0 (patch) | |
| tree | 4b678c7fcf172d79b0cfd2a39c0992dea67aadd3 | |
| parent | 846042161c17bcc696715b3dfe2e6c4970da0b34 (diff) | |
| download | rust-c31c60cbb9ceb75402240bfe1adc9c2b48a29aa0.tar.gz rust-c31c60cbb9ceb75402240bfe1adc9c2b48a29aa0.zip | |
Reword diagnostic
| -rw-r--r-- | src/librustc/infer/error_reporting/mod.rs | 16 | ||||
| -rw-r--r-- | 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 3cd7c5e0af3..cdb90c7ba7e 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 689fe6053c9..cbc4a557be9 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 |
