@@ -515,68 +515,64 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
515
515
516
516
err. buffer ( & mut self . errors_buffer ) ;
517
517
}
518
-
518
+
519
519
/// User cannot make signature of a trait mutable without changing the
520
520
/// trait. So we find if this error belongs to a trait and if so we move
521
- /// suggestion to the trait or disable it if it is out of scope of this crate
521
+ /// suggestion to the trait or disable it if it is out of scope of this crate
522
522
fn is_error_in_trait ( & self , local : Local ) -> ( bool , Option < Span > ) {
523
523
if self . body . local_kind ( local) != LocalKind :: Arg {
524
524
return ( false , None ) ;
525
525
}
526
526
let hir_map = self . infcx . tcx . hir ( ) ;
527
527
let my_def = self . body . source . def_id ( ) ;
528
528
let my_hir = hir_map. local_def_id_to_hir_id ( my_def. as_local ( ) . unwrap ( ) ) ;
529
- let td = if let Some ( a) = self . infcx . tcx . impl_of_method ( my_def ) . and_then ( |x| {
530
- self . infcx . tcx . trait_id_of_impl ( x)
531
- } ) {
529
+ let td = if let Some ( a) =
530
+ self . infcx . tcx . impl_of_method ( my_def ) . and_then ( |x| self . infcx . tcx . trait_id_of_impl ( x) )
531
+ {
532
532
a
533
533
} else {
534
534
return ( false , None ) ;
535
535
} ;
536
- ( true , td. as_local ( ) . and_then ( |tld| {
537
- let h = hir_map. local_def_id_to_hir_id ( tld) ;
538
- match hir_map. find ( h) {
539
- Some ( Node :: Item ( hir:: Item {
540
- kind : hir:: ItemKind :: Trait (
541
- _, _, _, _,
542
- items
543
- ) ,
544
- ..
545
- } ) ) => {
546
- let mut f_in_trait_opt = None ;
547
- for hir:: TraitItemRef { id : fi, kind : k, .. } in * items {
548
- let hi = fi. hir_id ( ) ;
549
- if !matches ! ( k, hir:: AssocItemKind :: Fn { .. } ) {
550
- continue ;
551
- }
552
- if hir_map. name ( hi) != hir_map. name ( my_hir) {
553
- continue ;
536
+ (
537
+ true ,
538
+ td. as_local ( ) . and_then ( |tld| {
539
+ let h = hir_map. local_def_id_to_hir_id ( tld) ;
540
+ match hir_map. find ( h) {
541
+ Some ( Node :: Item ( hir:: Item {
542
+ kind : hir:: ItemKind :: Trait ( _, _, _, _, items) ,
543
+ ..
544
+ } ) ) => {
545
+ let mut f_in_trait_opt = None ;
546
+ for hir:: TraitItemRef { id : fi, kind : k, .. } in * items {
547
+ let hi = fi. hir_id ( ) ;
548
+ if !matches ! ( k, hir:: AssocItemKind :: Fn { .. } ) {
549
+ continue ;
550
+ }
551
+ if hir_map. name ( hi) != hir_map. name ( my_hir) {
552
+ continue ;
553
+ }
554
+ f_in_trait_opt = Some ( hi) ;
555
+ break ;
554
556
}
555
- f_in_trait_opt = Some ( hi) ;
556
- break ;
557
- }
558
- f_in_trait_opt. and_then ( |f_in_trait| {
559
- match hir_map. find ( f_in_trait) {
557
+ f_in_trait_opt. and_then ( |f_in_trait| match hir_map. find ( f_in_trait) {
560
558
Some ( Node :: TraitItem ( hir:: TraitItem {
561
- kind : hir:: TraitItemKind :: Fn ( hir:: FnSig {
562
- decl : hir:: FnDecl {
563
- inputs,
564
- ..
565
- } ,
566
- ..
567
- } , _) ,
559
+ kind :
560
+ hir:: TraitItemKind :: Fn (
561
+ hir:: FnSig { decl : hir:: FnDecl { inputs, .. } , .. } ,
562
+ _,
563
+ ) ,
568
564
..
569
565
} ) ) => {
570
566
let hir:: Ty { span, .. } = inputs[ local. index ( ) - 1 ] ;
571
567
Some ( span)
572
- } ,
568
+ }
573
569
_ => None ,
574
- }
575
- } )
570
+ } )
571
+ }
572
+ _ => None ,
576
573
}
577
- _ => None
578
- }
579
- } ) )
574
+ } ) ,
575
+ )
580
576
}
581
577
582
578
// point to span of upvar making closure call require mutable borrow
0 commit comments