File tree 1 file changed +4
-2
lines changed
compiler/rustc_trait_selection/src/traits
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -1001,7 +1001,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for PlaceholderReplacer<'_, 'tcx> {
1001
1001
& mut self ,
1002
1002
t : ty:: Binder < ' tcx , T > ,
1003
1003
) -> ty:: Binder < ' tcx , T > {
1004
- if !t. has_placeholders ( ) && !t. has_infer_regions ( ) {
1004
+ if !t. has_placeholders ( ) && !t. has_infer ( ) {
1005
1005
return t;
1006
1006
}
1007
1007
self . current_index . shift_in ( 1 ) ;
@@ -1048,6 +1048,7 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for PlaceholderReplacer<'_, 'tcx> {
1048
1048
}
1049
1049
1050
1050
fn fold_ty ( & mut self , ty : Ty < ' tcx > ) -> Ty < ' tcx > {
1051
+ let ty = self . infcx . shallow_resolve ( ty) ;
1051
1052
match * ty. kind ( ) {
1052
1053
ty:: Placeholder ( p) => {
1053
1054
let replace_var = self . mapped_types . get ( & p) ;
@@ -1067,12 +1068,13 @@ impl<'tcx> TypeFolder<TyCtxt<'tcx>> for PlaceholderReplacer<'_, 'tcx> {
1067
1068
}
1068
1069
}
1069
1070
1070
- _ if ty. has_placeholders ( ) || ty. has_infer_regions ( ) => ty. super_fold_with ( self ) ,
1071
+ _ if ty. has_placeholders ( ) || ty. has_infer ( ) => ty. super_fold_with ( self ) ,
1071
1072
_ => ty,
1072
1073
}
1073
1074
}
1074
1075
1075
1076
fn fold_const ( & mut self , ct : ty:: Const < ' tcx > ) -> ty:: Const < ' tcx > {
1077
+ let ct = self . infcx . shallow_resolve ( ct) ;
1076
1078
if let ty:: ConstKind :: Placeholder ( p) = ct. kind ( ) {
1077
1079
let replace_var = self . mapped_consts . get ( & p) ;
1078
1080
match replace_var {
You can’t perform that action at this time.
0 commit comments