- 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");
- }
+ let node_id = self.tcx.hir.as_local_node_id(id).unwrap();
+ if let Some(&(ty::ClosureKind::FnOnce, Some((span, name)))) =
+ self.tables.closure_kinds.get(&node_id)
+ {
+ err.help(&format!("closure cannot be invoked more than once because \
+ it moves the variable `{}` out of its environment",
+ name));
+ err.span_label(span, format!("{} moved here", name));