Skip to content

Commit 3f60e71

Browse files
committed
remove inherited_visibility in lower.rs
1 parent d7eebd9 commit 3f60e71

File tree

1 file changed

+13
-37
lines changed

1 file changed

+13
-37
lines changed

crates/hir-def/src/item_tree/lower.rs

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ pub(super) struct Ctx<'a> {
2121
tree: ItemTree,
2222
source_ast_id_map: Arc<AstIdMap>,
2323
body_ctx: crate::body::LowerCtx<'a>,
24-
forced_visibility: Option<RawVisibilityId>,
2524
}
2625

2726
impl<'a> Ctx<'a> {
@@ -31,7 +30,6 @@ impl<'a> Ctx<'a> {
3130
tree: ItemTree::default(),
3231
source_ast_id_map: db.ast_id_map(file),
3332
body_ctx: crate::body::LowerCtx::new(db, file),
34-
forced_visibility: None,
3533
}
3634
}
3735

@@ -225,11 +223,10 @@ impl<'a> Ctx<'a> {
225223
let visibility = self.lower_visibility(enum_);
226224
let name = enum_.name()?.as_name();
227225
let generic_params = self.lower_generic_params(GenericsOwner::Enum, enum_);
228-
let variants =
229-
self.with_inherited_visibility(visibility, |this| match &enum_.variant_list() {
230-
Some(variant_list) => this.lower_variants(variant_list),
231-
None => IdxRange::new(this.next_variant_idx()..this.next_variant_idx()),
232-
});
226+
let variants = match &enum_.variant_list() {
227+
Some(variant_list) => self.lower_variants(variant_list),
228+
None => IdxRange::new(self.next_variant_idx()..self.next_variant_idx()),
229+
};
233230
let ast_id = self.source_ast_id_map.ast_id(enum_);
234231
let res = Enum { name, visibility, generic_params, variants, ast_id };
235232
Some(id(self.data().enums.alloc(res)))
@@ -440,18 +437,15 @@ impl<'a> Ctx<'a> {
440437
let is_auto = trait_def.auto_token().is_some();
441438
let is_unsafe = trait_def.unsafe_token().is_some();
442439
let items = trait_def.assoc_item_list().map(|list| {
443-
let db = self.db;
444-
self.with_inherited_visibility(visibility, |this| {
445-
list.assoc_items()
446-
.filter_map(|item| {
447-
let attrs = RawAttrs::new(db, &item, this.hygiene());
448-
this.lower_assoc_item(&item).map(|item| {
449-
this.add_attrs(ModItem::from(item).into(), attrs);
450-
item
451-
})
440+
list.assoc_items()
441+
.filter_map(|item| {
442+
let attrs = RawAttrs::new(self.db, &item, self.hygiene());
443+
self.lower_assoc_item(&item).map(|item| {
444+
self.add_attrs(ModItem::from(item).into(), attrs);
445+
item
452446
})
453-
.collect()
454-
})
447+
})
448+
.collect()
455449
});
456450
let ast_id = self.source_ast_id_map.ast_id(trait_def);
457451
let res = Trait {
@@ -622,13 +616,7 @@ impl<'a> Ctx<'a> {
622616
}
623617

624618
fn lower_visibility(&mut self, item: &dyn ast::HasVisibility) -> RawVisibilityId {
625-
let vis = match self.forced_visibility {
626-
Some(vis) => return vis,
627-
None => {
628-
RawVisibility::from_ast_with_hygiene(self.db, item.visibility(), self.hygiene())
629-
}
630-
};
631-
619+
let vis = RawVisibility::from_ast_with_hygiene(self.db, item.visibility(), self.hygiene());
632620
self.data().vis.alloc(vis)
633621
}
634622

@@ -649,18 +637,6 @@ impl<'a> Ctx<'a> {
649637
}
650638
}
651639

652-
/// Forces the visibility `vis` to be used for all items lowered during execution of `f`.
653-
fn with_inherited_visibility<R>(
654-
&mut self,
655-
vis: RawVisibilityId,
656-
f: impl FnOnce(&mut Self) -> R,
657-
) -> R {
658-
let old = mem::replace(&mut self.forced_visibility, Some(vis));
659-
let res = f(self);
660-
self.forced_visibility = old;
661-
res
662-
}
663-
664640
fn next_field_idx(&self) -> Idx<Field> {
665641
Idx::from_raw(RawIdx::from(
666642
self.tree.data.as_ref().map_or(0, |data| data.fields.len() as u32),

0 commit comments

Comments
 (0)