@@ -8,7 +8,8 @@ use chalk_ir::{cast::Cast, Mutability, TyVariableKind};
8
8
use hir_def:: lang_item:: LangItemTarget ;
9
9
10
10
use crate :: {
11
- autoderef, to_chalk_trait_id, traits:: Solution , Interner , Substitution , TraitRef , Ty , TyKind ,
11
+ autoderef, to_chalk_trait_id, traits:: Solution , Interner , Substitution , TraitRef , Ty ,
12
+ TyBuilder , TyKind ,
12
13
} ;
13
14
14
15
use super :: { InEnvironment , InferenceContext } ;
@@ -44,8 +45,8 @@ impl<'a> InferenceContext<'a> {
44
45
// https://github.com/rust-lang/rust/blob/7b805396bf46dce972692a6846ce2ad8481c5f85/src/librustc_typeck/check/coercion.rs#L877-L916
45
46
let sig1 = ty1. callable_sig ( self . db ) . expect ( "FnDef without callable sig" ) ;
46
47
let sig2 = ty2. callable_sig ( self . db ) . expect ( "FnDef without callable sig" ) ;
47
- let ptr_ty1 = Ty :: fn_ptr ( sig1) ;
48
- let ptr_ty2 = Ty :: fn_ptr ( sig2) ;
48
+ let ptr_ty1 = TyBuilder :: fn_ptr ( sig1) ;
49
+ let ptr_ty2 = TyBuilder :: fn_ptr ( sig2) ;
49
50
self . coerce_merge_branch ( & ptr_ty1, & ptr_ty2)
50
51
} else {
51
52
cov_mark:: hit!( coerce_merge_fail_fallback) ;
@@ -95,7 +96,7 @@ impl<'a> InferenceContext<'a> {
95
96
( TyKind :: FnDef ( ..) , TyKind :: Function { .. } ) => match from_ty. callable_sig ( self . db ) {
96
97
None => return false ,
97
98
Some ( sig) => {
98
- from_ty = Ty :: fn_ptr ( sig) ;
99
+ from_ty = TyBuilder :: fn_ptr ( sig) ;
99
100
}
100
101
} ,
101
102
0 commit comments