diff options
Diffstat (limited to 'crates/hir_def/src/adt.rs')
-rw-r--r-- | crates/hir_def/src/adt.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/crates/hir_def/src/adt.rs b/crates/hir_def/src/adt.rs index efbde17d8..1b9bb8235 100644 --- a/crates/hir_def/src/adt.rs +++ b/crates/hir_def/src/adt.rs | |||
@@ -31,12 +31,14 @@ pub struct StructData { | |||
31 | pub name: Name, | 31 | pub name: Name, |
32 | pub variant_data: Arc<VariantData>, | 32 | pub variant_data: Arc<VariantData>, |
33 | pub repr: Option<ReprKind>, | 33 | pub repr: Option<ReprKind>, |
34 | pub visibility: RawVisibility, | ||
34 | } | 35 | } |
35 | 36 | ||
36 | #[derive(Debug, Clone, PartialEq, Eq)] | 37 | #[derive(Debug, Clone, PartialEq, Eq)] |
37 | pub struct EnumData { | 38 | pub struct EnumData { |
38 | pub name: Name, | 39 | pub name: Name, |
39 | pub variants: Arena<EnumVariantData>, | 40 | pub variants: Arena<EnumVariantData>, |
41 | pub visibility: RawVisibility, | ||
40 | } | 42 | } |
41 | 43 | ||
42 | #[derive(Debug, Clone, PartialEq, Eq)] | 44 | #[derive(Debug, Clone, PartialEq, Eq)] |
@@ -102,6 +104,7 @@ impl StructData { | |||
102 | name: strukt.name.clone(), | 104 | name: strukt.name.clone(), |
103 | variant_data: Arc::new(variant_data), | 105 | variant_data: Arc::new(variant_data), |
104 | repr, | 106 | repr, |
107 | visibility: item_tree[strukt.visibility].clone(), | ||
105 | }) | 108 | }) |
106 | } | 109 | } |
107 | pub(crate) fn union_data_query(db: &dyn DefDatabase, id: UnionId) -> Arc<StructData> { | 110 | pub(crate) fn union_data_query(db: &dyn DefDatabase, id: UnionId) -> Arc<StructData> { |
@@ -118,6 +121,7 @@ impl StructData { | |||
118 | name: union.name.clone(), | 121 | name: union.name.clone(), |
119 | variant_data: Arc::new(variant_data), | 122 | variant_data: Arc::new(variant_data), |
120 | repr, | 123 | repr, |
124 | visibility: item_tree[union.visibility].clone(), | ||
121 | }) | 125 | }) |
122 | } | 126 | } |
123 | } | 127 | } |
@@ -150,7 +154,11 @@ impl EnumData { | |||
150 | } | 154 | } |
151 | } | 155 | } |
152 | 156 | ||
153 | Arc::new(EnumData { name: enum_.name.clone(), variants }) | 157 | Arc::new(EnumData { |
158 | name: enum_.name.clone(), | ||
159 | variants, | ||
160 | visibility: item_tree[enum_.visibility].clone(), | ||
161 | }) | ||
154 | } | 162 | } |
155 | 163 | ||
156 | pub fn variant(&self, name: &Name) -> Option<LocalEnumVariantId> { | 164 | pub fn variant(&self, name: &Name) -> Option<LocalEnumVariantId> { |