@@ -1311,7 +1311,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1311
1311
let path = self . tcx . def_path_str ( trait_ref. skip_binder ( ) . def_id ) ;
1312
1312
1313
1313
let ty = match item. kind {
1314
- ty:: AssocKind :: Const | ty:: AssocKind :: Type => rcvr_ty ,
1314
+ ty:: AssocKind :: Const | ty:: AssocKind :: Type => impl_ty ,
1315
1315
ty:: AssocKind :: Fn => self
1316
1316
. tcx
1317
1317
. fn_sig ( item. def_id )
@@ -1329,6 +1329,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1329
1329
err,
1330
1330
path,
1331
1331
ty,
1332
+ impl_ty,
1332
1333
item. kind ,
1333
1334
self . tcx . def_kind_descr ( item. kind . as_def_kind ( ) , item. def_id ) ,
1334
1335
sugg_span,
@@ -1365,6 +1366,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1365
1366
err,
1366
1367
path,
1367
1368
rcvr_ty,
1369
+ rcvr_ty,
1368
1370
item. kind ,
1369
1371
self . tcx . def_kind_descr ( item. kind . as_def_kind ( ) , item. def_id ) ,
1370
1372
sugg_span,
@@ -3107,6 +3109,7 @@ fn print_disambiguation_help<'tcx>(
3107
3109
err : & mut Diagnostic ,
3108
3110
trait_name : String ,
3109
3111
rcvr_ty : Ty < ' _ > ,
3112
+ self_ty : Ty < ' _ > ,
3110
3113
kind : ty:: AssocKind ,
3111
3114
def_kind_descr : & ' static str ,
3112
3115
span : Span ,
@@ -3133,13 +3136,13 @@ fn print_disambiguation_help<'tcx>(
3133
3136
. join( ", " ) ,
3134
3137
) ;
3135
3138
let trait_name = if !fn_has_self_parameter {
3136
- format ! ( "<{rcvr_ty } as {trait_name}>" )
3139
+ format ! ( "<{self_ty } as {trait_name}>" )
3137
3140
} else {
3138
3141
trait_name
3139
3142
} ;
3140
3143
( span, format ! ( "{trait_name}::{item_name}{args}" ) )
3141
3144
} else {
3142
- ( span. with_hi ( item_name. span . lo ( ) ) , format ! ( "<{rcvr_ty } as {trait_name}>::" ) )
3145
+ ( span. with_hi ( item_name. span . lo ( ) ) , format ! ( "<{self_ty } as {trait_name}>::" ) )
3143
3146
} ;
3144
3147
err. span_suggestion_verbose (
3145
3148
span,
0 commit comments