Address review comments: make label shorter

This commit is contained in:
Esteban Küber 2018-01-01 22:10:04 -08:00
parent be6734a7e7
commit 6c506d4c71
2 changed files with 16 additions and 9 deletions

View File

@ -705,12 +705,6 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> {
}, " (into closure)"),
};
let extra_move_label = if need_note {
format!(" because it has type `{}`, which does not implement the `Copy` trait",
moved_lp.ty)
} else {
String::new()
};
// Annotate the use and the move in the span. Watch out for
// the case where the use and the move are the same. This
// means the use is in a loop.
@ -720,10 +714,22 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> {
format!("value moved{} here in previous iteration of loop{}",
move_note,
extra_move_label));
if need_note {
err.note(&format!("value moved because it has type `{}`, \
which does not implement the `Copy` trait",
moved_lp.ty)
}
err
} else {
err.span_label(use_span, format!("value {} here after move", verb_participle))
.span_label(move_span, format!("value moved{} here{}", move_note, extra_move_label));
err.span_label(use_span, format!("value {} here after move", verb_participle));
let extra_move_label = if need_note {
&format!(" because it has type `{}`, which does not implement the `Copy` trait",
moved_lp.ty)
} else {
""
};
err.span_label(move_span,format!("value moved{} here{}", move_note, extra_move_label));
err
};

View File

@ -10,7 +10,8 @@ error[E0382]: use of moved value: `(maybe as std::prelude::v1::Some).0`
--> $DIR/issue-41962.rs:15:21
|
15 | if let Some(thing) = maybe {
| ^^^^^ value moved here in previous iteration of loop because it has type `std::vec::Vec<bool>`, which does not implement the `Copy` trait
| ^^^^^ value moved here in previous iteration of loop
= note: value moved because it has type `std::vec::Vec<bool>`, which does not implement the `Copy` trait
error: aborting due to 2 previous errors