From bf25b5eb823c3cbbacc06d33a3ff539de325be6a Mon Sep 17 00:00:00 2001 From: Tommy Ip Date: Wed, 24 May 2017 17:30:27 +0100 Subject: [PATCH] Explain why a closure is `FnOnce` in closure errors --- src/librustc_borrowck/borrowck/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index f7c20542cbf2..297df4978a59 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