@@ -564,24 +564,26 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
564
564
let msg = format ! ( "the `{}` method cannot be invoked on a trait object" , item_name) ;
565
565
let mut err = self . sess ( ) . struct_span_err ( span, & msg) ;
566
566
if !candidates. is_empty ( ) {
567
- let help = format ! ( "{an}other candidate{s} {were} found in the following \
568
- trait{s}, perhaps add a `use` for {one_of_them}:",
569
- an = if candidates. len( ) == 1 { "an" } else { "" } ,
570
- s = pluralise!( candidates. len( ) ) ,
571
- were = if candidates. len( ) == 1 { "was" } else { "were" } ,
572
- one_of_them = if candidates. len( ) == 1 {
573
- "it"
574
- } else {
575
- "one_of_them"
576
- } ) ;
567
+ let help = format ! (
568
+ "{an}other candidate{s} {were} found in the following trait{s}, perhaps \
569
+ add a `use` for {one_of_them}:",
570
+ an = if candidates. len( ) == 1 { "an" } else { "" } ,
571
+ s = pluralise!( candidates. len( ) ) ,
572
+ were = if candidates. len( ) == 1 { "was" } else { "were" } ,
573
+ one_of_them = if candidates. len( ) == 1 {
574
+ "it"
575
+ } else {
576
+ "one_of_them"
577
+ } ,
578
+ ) ;
577
579
self . suggest_use_candidates ( & mut err, help, candidates) ;
578
580
}
579
581
if let ty:: Ref ( region, t_type, mutability) = rcvr_ty. kind {
580
- let trait_type = match mutability {
581
- hir:: Mutability :: MutMutable => self . tcx . mk_imm_ref ( region, t_type) ,
582
- hir:: Mutability :: MutImmutable => self . tcx . mk_mut_ref ( region, t_type) ,
583
- } ;
584
582
if needs_mut {
583
+ let trait_type = self . tcx . mk_ref ( region, ty:: TypeAndMut {
584
+ ty : t_type,
585
+ mutbl : mutability. not ( ) ,
586
+ } ) ;
585
587
err. note ( & format ! ( "you need `{}` instead of `{}`" , trait_type, rcvr_ty) ) ;
586
588
}
587
589
}
0 commit comments