@@ -224,10 +224,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
224
224
}
225
225
}
226
226
227
- use_spans. var_span_label_path_only (
228
- & mut err,
229
- format ! ( "{} occurs due to use{}" , desired_action. as_noun( ) , use_spans. describe( ) ) ,
230
- ) ;
227
+ use_spans. var_path_only_subdiag ( & mut err, desired_action) ;
231
228
232
229
if !is_loop_move {
233
230
err. span_label (
@@ -404,10 +401,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
404
401
let used = desired_action. as_general_verb_in_past_tense ( ) ;
405
402
let mut err =
406
403
struct_span_err ! ( self , span, E0381 , "{used} binding {desc}{isnt_initialized}" ) ;
407
- use_spans. var_span_label_path_only (
408
- & mut err,
409
- format ! ( "{} occurs due to use{}" , desired_action. as_noun( ) , use_spans. describe( ) ) ,
410
- ) ;
404
+ use_spans. var_path_only_subdiag ( & mut err, desired_action) ;
411
405
412
406
if let InitializationRequiringAction :: PartialAssignment
413
407
| InitializationRequiringAction :: Assignment = desired_action
@@ -673,16 +667,16 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
673
667
let move_spans = self . move_spans ( place. as_ref ( ) , location) ;
674
668
let span = move_spans. args_or_use ( ) ;
675
669
676
- let mut err =
677
- self . cannot_move_when_borrowed ( span, & self . describe_any_place ( place. as_ref ( ) ) ) ;
678
- err. span_label ( borrow_span, format ! ( "borrow of {} occurs here" , borrow_msg) ) ;
679
- err. span_label ( span, format ! ( "move out of {} occurs here" , value_msg) ) ;
680
-
681
- borrow_spans. var_span_label_path_only (
682
- & mut err,
683
- format ! ( "borrow occurs due to use{}" , borrow_spans. describe( ) ) ,
670
+ let mut err = self . cannot_move_when_borrowed (
671
+ span,
672
+ borrow_span,
673
+ & self . describe_any_place ( place. as_ref ( ) ) ,
674
+ & borrow_msg,
675
+ & value_msg,
684
676
) ;
685
677
678
+ borrow_spans. var_path_only_subdiag ( & mut err, crate :: InitializationRequiringAction :: Borrow ) ;
679
+
686
680
move_spans. var_span_label (
687
681
& mut err,
688
682
format ! ( "move occurs due to use{}" , move_spans. describe( ) ) ,
@@ -724,22 +718,15 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
724
718
borrow_span,
725
719
& self . describe_any_place ( borrow. borrowed_place . as_ref ( ) ) ,
726
720
) ;
727
- borrow_spans. var_subdiag (
728
- & mut err,
729
- |var_span| {
730
- use crate :: session_diagnostics:: CaptureVarCause :: * ;
731
- let place = & borrow. borrowed_place ;
732
- let desc_place = self . describe_any_place ( place. as_ref ( ) ) ;
733
- match borrow_spans {
734
- UseSpans :: ClosureUse { generator_kind, .. } => match generator_kind {
735
- Some ( _) => BorrowUsePlaceGenerator { place : desc_place, var_span } ,
736
- None => BorrowUsePlaceClosure { place : desc_place, var_span } ,
737
- } ,
738
- _ => BorrowUsePlace { place : desc_place, var_span } ,
739
- }
740
- } ,
741
- "mutable" ,
742
- ) ;
721
+ borrow_spans. var_subdiag ( & mut err, Some ( borrow. kind ) , |kind, var_span| {
722
+ use crate :: session_diagnostics:: CaptureVarCause :: * ;
723
+ let place = & borrow. borrowed_place ;
724
+ let desc_place = self . describe_any_place ( place. as_ref ( ) ) ;
725
+ match kind {
726
+ Some ( _) => BorrowUsePlaceGenerator { place : desc_place, var_span } ,
727
+ None => BorrowUsePlaceClosure { place : desc_place, var_span } ,
728
+ }
729
+ } ) ;
743
730
744
731
self . explain_why_borrow_contains_point ( location, borrow, None )
745
732
. add_explanation_to_diagnostic (
0 commit comments