@@ -16,7 +16,7 @@ use rustc_hir::{ExprKind, GenericArg, Node, QPath};
16
16
use rustc_infer:: infer:: canonical:: { Canonical , OriginalQueryValues , QueryResponse } ;
17
17
use rustc_infer:: infer:: error_reporting:: TypeAnnotationNeeded :: E0282 ;
18
18
use rustc_infer:: infer:: { InferOk , InferResult } ;
19
- use rustc_middle:: ty:: adjustment:: { Adjust , Adjustment , AutoBorrow , AutoBorrowMutability } ;
19
+ use rustc_middle:: ty:: adjustment:: { Adjust , Adjustment , AutoBorrow , AutoBorrowMutability , PointerCast } ;
20
20
use rustc_middle:: ty:: fold:: TypeFoldable ;
21
21
use rustc_middle:: ty:: subst:: {
22
22
self , GenericArgKind , InternalSubsts , Subst , SubstsRef , UserSelfTy , UserSubsts ,
@@ -302,6 +302,11 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
302
302
] ) => {
303
303
// A reborrow has no effect before a dereference.
304
304
}
305
+ ( & [ Adjustment { kind : Adjust :: Pointer ( PointerCast :: ReifyFnPointer ) , .. } ] ,
306
+ & [ Adjustment { kind : Adjust :: Pointer ( PointerCast :: NotConstFnPointer ) , .. } ] ) => {
307
+ entry. get_mut ( ) . push ( adj[ 0 ] . clone ( ) ) ;
308
+ return ;
309
+ }
305
310
// FIXME: currently we never try to compose autoderefs
306
311
// and ReifyFnPointer/UnsafeFnPointer, but we could.
307
312
_ =>
0 commit comments