diff --git a/crates/hir-def/src/item_tree/lower.rs b/crates/hir-def/src/item_tree/lower.rs index cdae0d0803be..7ba983fa716d 100644 --- a/crates/hir-def/src/item_tree/lower.rs +++ b/crates/hir-def/src/item_tree/lower.rs @@ -21,7 +21,6 @@ pub(super) struct Ctx<'a> { tree: ItemTree, source_ast_id_map: Arc, body_ctx: crate::body::LowerCtx<'a>, - forced_visibility: Option, } impl<'a> Ctx<'a> { @@ -31,7 +30,6 @@ pub(super) fn new(db: &'a dyn DefDatabase, file: HirFileId) -> Self { tree: ItemTree::default(), source_ast_id_map: db.ast_id_map(file), body_ctx: crate::body::LowerCtx::new(db, file), - forced_visibility: None, } } @@ -225,11 +223,10 @@ fn lower_enum(&mut self, enum_: &ast::Enum) -> Option> { let visibility = self.lower_visibility(enum_); let name = enum_.name()?.as_name(); let generic_params = self.lower_generic_params(GenericsOwner::Enum, enum_); - let variants = - self.with_inherited_visibility(visibility, |this| match &enum_.variant_list() { - Some(variant_list) => this.lower_variants(variant_list), - None => IdxRange::new(this.next_variant_idx()..this.next_variant_idx()), - }); + let variants = match &enum_.variant_list() { + Some(variant_list) => self.lower_variants(variant_list), + None => IdxRange::new(self.next_variant_idx()..self.next_variant_idx()), + }; let ast_id = self.source_ast_id_map.ast_id(enum_); let res = Enum { name, visibility, generic_params, variants, ast_id }; Some(id(self.data().enums.alloc(res))) @@ -440,18 +437,15 @@ fn lower_trait(&mut self, trait_def: &ast::Trait) -> Option Vec RawVisibilityId { - let vis = match self.forced_visibility { - Some(vis) => return vis, - None => { - RawVisibility::from_ast_with_hygiene(self.db, item.visibility(), self.hygiene()) - } - }; - + let vis = RawVisibility::from_ast_with_hygiene(self.db, item.visibility(), self.hygiene()); self.data().vis.alloc(vis) } @@ -649,18 +637,6 @@ fn lower_type_ref_opt(&mut self, type_ref: Option) -> Interned( - &mut self, - vis: RawVisibilityId, - f: impl FnOnce(&mut Self) -> R, - ) -> R { - let old = mem::replace(&mut self.forced_visibility, Some(vis)); - let res = f(self); - self.forced_visibility = old; - res - } - fn next_field_idx(&self) -> Idx { Idx::from_raw(RawIdx::from( self.tree.data.as_ref().map_or(0, |data| data.fields.len() as u32),