about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTommy Ip <hkmp7tommy@gmail.com>2017-05-24 17:30:27 +0100
committerTommy Ip <hkmp7tommy@gmail.com>2017-05-24 17:30:27 +0100
commitbf25b5eb823c3cbbacc06d33a3ff539de325be6a (patch)
treea41548be8583ca35dda2f9725a1381f0659cc950
parent7748bc665d012042d2fe8bbda416ab4682ae45ba (diff)
downloadrust-bf25b5eb823c3cbbacc06d33a3ff539de325be6a.tar.gz
rust-bf25b5eb823c3cbbacc06d33a3ff539de325be6a.zip
Explain why a closure is `FnOnce` in closure errors
-rw-r--r--src/librustc_borrowck/borrowck/mod.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs
index f7c20542cbf..297df4978a5 100644
--- a/src/librustc_borrowck/borrowck/mod.rs
+++ b/src/librustc_borrowck/borrowck/mod.rs
@@ -597,6 +597,9 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> {
                         if let Ok(ty::ClosureKind::FnOnce) =
                            ty::queries::closure_kind::try_get(self.tcx, DUMMY_SP, id) {
                             err.help("closure was moved because it only implements `FnOnce`");
+                            if let Some(&(_kind, Some(span))) = self.tables.closure_kinds.get( ) {
+                                err.span_label(span, "move occured here");
+                            }
                             false
                         } else {
                             true