@@ -973,7 +973,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
973
973
propagated_outlives_requirements : & mut Vec < ClosureOutlivesRequirement < ' tcx > > ,
974
974
) -> bool {
975
975
let tcx = infcx. tcx ;
976
- let TypeTest { generic_kind, lower_bound, span : blame_span, ref verify_bound } = * type_test;
976
+ let TypeTest { generic_kind, lower_bound, span : blame_span, verify_bound : _ } = * type_test;
977
977
978
978
let generic_ty = generic_kind. to_ty ( tcx) ;
979
979
let Some ( subject) = self . try_promote_type_test_subject ( infcx, generic_ty) else {
@@ -1013,23 +1013,6 @@ impl<'tcx> RegionInferenceContext<'tcx> {
1013
1013
// `ClosureOutlivesRequirement`.
1014
1014
for ur in self . scc_values . universal_regions_outlived_by ( r_scc) {
1015
1015
debug ! ( "universal_region_outlived_by ur={:?}" , ur) ;
1016
- // Check whether we can already prove that the "subject" outlives `ur`.
1017
- // If so, we don't have to propagate this requirement to our caller.
1018
- //
1019
- // To continue the example from the function, if we are trying to promote
1020
- // a requirement that `T: 'X`, and we know that `'X = '1 + '2` (i.e., the union
1021
- // `'1` and `'2`), then in this loop `ur` will be `'1` (and `'2`). So here
1022
- // we check whether `T: '1` is something we *can* prove. If so, no need
1023
- // to propagate that requirement.
1024
- //
1025
- // This is needed because -- particularly in the case
1026
- // where `ur` is a local bound -- we are sometimes in a
1027
- // position to prove things that our caller cannot. See
1028
- // #53570 for an example.
1029
- if self . eval_verify_bound ( infcx, generic_ty, ur, & verify_bound) {
1030
- continue ;
1031
- }
1032
-
1033
1016
let non_local_ub = self . universal_region_relations . non_local_upper_bounds ( ur) ;
1034
1017
debug ! ( ?non_local_ub) ;
1035
1018
0 commit comments