From fac763168f35bc24b83c435d4d7009dca648432b Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Tue, 26 Jul 2022 11:56:26 -0300 Subject: [PATCH] Remove NEW_COLLECT_LIFETIMES env var --- compiler/rustc_ast_lowering/src/lib.rs | 186 +++++++++++-------------- 1 file changed, 82 insertions(+), 104 deletions(-) diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs index b8383af521f..aa84373b6cf 100644 --- a/compiler/rustc_ast_lowering/src/lib.rs +++ b/compiler/rustc_ast_lowering/src/lib.rs @@ -1377,125 +1377,103 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { let hir_bounds = if origin == hir::OpaqueTyOrigin::TyAlias { lctx.lower_param_bounds(bounds, itctx, true) } else { - if std::env::var("NEW_COLLECT_LIFETIMES").is_ok() { - debug!(?lctx.captured_lifetimes); + debug!(?lctx.captured_lifetimes); - let lifetime_stash = std::mem::replace( - &mut lctx.captured_lifetimes, - Some(LifetimeCaptureContext { - parent_def_id: opaque_ty_def_id, - captures: std::mem::take(&mut collected_lifetimes), - binders_to_ignore: Default::default(), - }), - ); + let lifetime_stash = std::mem::replace( + &mut lctx.captured_lifetimes, + Some(LifetimeCaptureContext { + parent_def_id: opaque_ty_def_id, + captures: std::mem::take(&mut collected_lifetimes), + binders_to_ignore: Default::default(), + }), + ); - let (lifetimes_in_bounds, binders_to_ignore) = ast::lifetimes_in_bounds(bounds); - debug!(?lifetimes_in_bounds); - debug!(?binders_to_ignore); + let (lifetimes_in_bounds, binders_to_ignore) = ast::lifetimes_in_bounds(bounds); + debug!(?lifetimes_in_bounds); + debug!(?binders_to_ignore); - for lifetime in &lifetimes_in_bounds { - let ident = lifetime.ident; - let span = ident.span; + for lifetime in &lifetimes_in_bounds { + let ident = lifetime.ident; + let span = ident.span; - let res = lctx - .resolver - .get_lifetime_res(lifetime.id) - .unwrap_or(LifetimeRes::Error); - debug!(?res); + let res = + lctx.resolver.get_lifetime_res(lifetime.id).unwrap_or(LifetimeRes::Error); + debug!(?res); - if let Some(mut captured_lifetimes) = lctx.captured_lifetimes.take() { - match res { - LifetimeRes::Param { param, binder } => { - if !captured_lifetimes.binders_to_ignore.contains(&binder) - && !binders_to_ignore - .get(&lifetime.id) - .unwrap_or(&Vec::new()) - .contains(&binder) - { - match captured_lifetimes.captures.entry(param) { - Entry::Occupied(_) => {} - Entry::Vacant(v) => { - let node_id = lctx.next_node_id(); - let name = ParamName::Plain(ident); + if let Some(mut captured_lifetimes) = lctx.captured_lifetimes.take() { + match res { + LifetimeRes::Param { param, binder } => { + if !captured_lifetimes.binders_to_ignore.contains(&binder) + && !binders_to_ignore + .get(&lifetime.id) + .unwrap_or(&Vec::new()) + .contains(&binder) + { + match captured_lifetimes.captures.entry(param) { + Entry::Occupied(_) => {} + Entry::Vacant(v) => { + let node_id = lctx.next_node_id(); + let name = ParamName::Plain(ident); - lctx.create_def( - captured_lifetimes.parent_def_id, - node_id, - DefPathData::LifetimeNs(name.ident().name), - ); + lctx.create_def( + captured_lifetimes.parent_def_id, + node_id, + DefPathData::LifetimeNs(name.ident().name), + ); - v.insert((span, node_id, name, res)); - } + v.insert((span, node_id, name, res)); } } } - - LifetimeRes::Fresh { param, binder } => { - debug_assert_eq!(ident.name, kw::UnderscoreLifetime); - if !captured_lifetimes.binders_to_ignore.contains(&binder) - && !binders_to_ignore - .get(&lifetime.id) - .unwrap_or(&Vec::new()) - .contains(&binder) - { - let param = lctx.local_def_id(param); - match captured_lifetimes.captures.entry(param) { - Entry::Occupied(_) => {} - Entry::Vacant(v) => { - let node_id = lctx.next_node_id(); - - let name = ParamName::Fresh; - - lctx.create_def( - captured_lifetimes.parent_def_id, - node_id, - DefPathData::LifetimeNs(kw::UnderscoreLifetime), - ); - - v.insert((span, node_id, name, res)); - } - } - } - } - - LifetimeRes::Infer | LifetimeRes::Static | LifetimeRes::Error => {} - - res => panic!( - "Unexpected lifetime resolution {:?} for {:?} at {:?}", - res, lifetime.ident, lifetime.ident.span - ), } - lctx.captured_lifetimes = Some(captured_lifetimes); + LifetimeRes::Fresh { param, binder } => { + debug_assert_eq!(ident.name, kw::UnderscoreLifetime); + if !captured_lifetimes.binders_to_ignore.contains(&binder) + && !binders_to_ignore + .get(&lifetime.id) + .unwrap_or(&Vec::new()) + .contains(&binder) + { + let param = lctx.local_def_id(param); + match captured_lifetimes.captures.entry(param) { + Entry::Occupied(_) => {} + Entry::Vacant(v) => { + let node_id = lctx.next_node_id(); + + let name = ParamName::Fresh; + + lctx.create_def( + captured_lifetimes.parent_def_id, + node_id, + DefPathData::LifetimeNs(kw::UnderscoreLifetime), + ); + + v.insert((span, node_id, name, res)); + } + } + } + } + + LifetimeRes::Infer | LifetimeRes::Static | LifetimeRes::Error => {} + + res => panic!( + "Unexpected lifetime resolution {:?} for {:?} at {:?}", + res, lifetime.ident, lifetime.ident.span + ), } + + lctx.captured_lifetimes = Some(captured_lifetimes); } - - let ret = lctx.lower_param_bounds(bounds, itctx, false); - - let ctxt = - std::mem::replace(&mut lctx.captured_lifetimes, lifetime_stash).unwrap(); - - collected_lifetimes = ctxt.captures; - - ret - } else { - let lifetime_stash = std::mem::replace( - &mut lctx.captured_lifetimes, - Some(LifetimeCaptureContext { - parent_def_id: opaque_ty_def_id, - captures: std::mem::take(&mut collected_lifetimes), - binders_to_ignore: Default::default(), - }), - ); - - let ret = lctx.lower_param_bounds(bounds, itctx, true); - - let ctxt = - std::mem::replace(&mut lctx.captured_lifetimes, lifetime_stash).unwrap(); - collected_lifetimes = ctxt.captures; - - ret } + + let ret = lctx.lower_param_bounds(bounds, itctx, false); + + let ctxt = std::mem::replace(&mut lctx.captured_lifetimes, lifetime_stash).unwrap(); + + collected_lifetimes = ctxt.captures; + + ret }; debug!(?collected_lifetimes);