diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-09 20:56:44 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-05-09 20:58:46 -0400 |
| commit | 1c19b6ad60d4993fb25c44ee8b6e625791084662 (patch) | |
| tree | 797da114a520826da2a67fed6722d54e6e19ddb7 /compiler/rustc_borrowck/src/diagnostics | |
| parent | 8c7c151a7a03d92cc5c75c49aa82a658ec1fe4ff (diff) | |
| download | rust-1c19b6ad60d4993fb25c44ee8b6e625791084662.tar.gz rust-1c19b6ad60d4993fb25c44ee8b6e625791084662.zip | |
Rename Generics::params to Generics::own_params
Diffstat (limited to 'compiler/rustc_borrowck/src/diagnostics')
| -rw-r--r-- | compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs b/compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs index 5ebdb69050b..e3ad92a5b2b 100644 --- a/compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs +++ b/compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs @@ -317,36 +317,39 @@ impl<'tcx> BorrowExplanation<'tcx> { let mut has_dyn = false; let mut failed = false; - let elaborated_args = std::iter::zip(*args, &generics.params).map(|(arg, param)| { - if let Some(ty::Dynamic(obj, _, ty::Dyn)) = arg.as_type().map(Ty::kind) { - let default = tcx.object_lifetime_default(param.def_id); - - let re_static = tcx.lifetimes.re_static; - - let implied_region = match default { - // This is not entirely precise. - ObjectLifetimeDefault::Empty => re_static, - ObjectLifetimeDefault::Ambiguous => { - failed = true; - re_static - } - ObjectLifetimeDefault::Param(param_def_id) => { - let index = generics.param_def_id_to_index[¶m_def_id] as usize; - args.get(index).and_then(|arg| arg.as_region()).unwrap_or_else(|| { + let elaborated_args = + std::iter::zip(*args, &generics.own_params).map(|(arg, param)| { + if let Some(ty::Dynamic(obj, _, ty::Dyn)) = arg.as_type().map(Ty::kind) { + let default = tcx.object_lifetime_default(param.def_id); + + let re_static = tcx.lifetimes.re_static; + + let implied_region = match default { + // This is not entirely precise. + ObjectLifetimeDefault::Empty => re_static, + ObjectLifetimeDefault::Ambiguous => { failed = true; re_static - }) - } - ObjectLifetimeDefault::Static => re_static, - }; + } + ObjectLifetimeDefault::Param(param_def_id) => { + let index = generics.param_def_id_to_index[¶m_def_id] as usize; + args.get(index).and_then(|arg| arg.as_region()).unwrap_or_else( + || { + failed = true; + re_static + }, + ) + } + ObjectLifetimeDefault::Static => re_static, + }; - has_dyn = true; + has_dyn = true; - Ty::new_dynamic(tcx, obj, implied_region, ty::Dyn).into() - } else { - arg - } - }); + Ty::new_dynamic(tcx, obj, implied_region, ty::Dyn).into() + } else { + arg + } + }); let elaborated_ty = Ty::new_adt(tcx, *def, tcx.mk_args_from_iter(elaborated_args)); if has_dyn && !failed { |
