@@ -564,24 +564,26 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
564564 let msg = format ! ( "the `{}` method cannot be invoked on a trait object" , item_name) ;
565565 let mut err = self . sess ( ) . struct_span_err ( span, & msg) ;
566566 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+ ) ;
577579 self . suggest_use_candidates ( & mut err, help, candidates) ;
578580 }
579581 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- } ;
584582 if needs_mut {
583+ let trait_type = self . tcx . mk_ref ( region, ty:: TypeAndMut {
584+ ty : t_type,
585+ mutbl : mutability. not ( ) ,
586+ } ) ;
585587 err. note ( & format ! ( "you need `{}` instead of `{}`" , trait_type, rcvr_ty) ) ;
586588 }
587589 }
0 commit comments