@@ -1322,7 +1322,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1322
1322
let path = self . tcx . def_path_str ( trait_ref. skip_binder ( ) . def_id ) ;
1323
1323
1324
1324
let ty = match item. kind {
1325
- ty:: AssocKind :: Const | ty:: AssocKind :: Type => rcvr_ty ,
1325
+ ty:: AssocKind :: Const | ty:: AssocKind :: Type => impl_ty ,
1326
1326
ty:: AssocKind :: Fn => self
1327
1327
. tcx
1328
1328
. fn_sig ( item. def_id )
@@ -1340,6 +1340,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1340
1340
err,
1341
1341
path,
1342
1342
ty,
1343
+ impl_ty,
1343
1344
item. kind ,
1344
1345
self . tcx . def_kind_descr ( item. kind . as_def_kind ( ) , item. def_id ) ,
1345
1346
sugg_span,
@@ -1376,6 +1377,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
1376
1377
err,
1377
1378
path,
1378
1379
rcvr_ty,
1380
+ rcvr_ty,
1379
1381
item. kind ,
1380
1382
self . tcx . def_kind_descr ( item. kind . as_def_kind ( ) , item. def_id ) ,
1381
1383
sugg_span,
@@ -3146,6 +3148,7 @@ fn print_disambiguation_help<'tcx>(
3146
3148
err : & mut Diagnostic ,
3147
3149
trait_name : String ,
3148
3150
rcvr_ty : Ty < ' _ > ,
3151
+ self_ty : Ty < ' _ > ,
3149
3152
kind : ty:: AssocKind ,
3150
3153
def_kind_descr : & ' static str ,
3151
3154
span : Span ,
@@ -3172,13 +3175,13 @@ fn print_disambiguation_help<'tcx>(
3172
3175
. join( ", " ) ,
3173
3176
) ;
3174
3177
let trait_name = if !fn_has_self_parameter {
3175
- format ! ( "<{rcvr_ty } as {trait_name}>" )
3178
+ format ! ( "<{self_ty } as {trait_name}>" )
3176
3179
} else {
3177
3180
trait_name
3178
3181
} ;
3179
3182
( span, format ! ( "{trait_name}::{item_name}{args}" ) )
3180
3183
} else {
3181
- ( span. with_hi ( item_name. span . lo ( ) ) , format ! ( "<{rcvr_ty } as {trait_name}>::" ) )
3184
+ ( span. with_hi ( item_name. span . lo ( ) ) , format ! ( "<{self_ty } as {trait_name}>::" ) )
3182
3185
} ;
3183
3186
err. span_suggestion_verbose (
3184
3187
span,
0 commit comments