aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/adt.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-03-19 15:00:11 +0000
committerAleksey Kladov <[email protected]>2020-03-19 17:46:30 +0000
commitf840fcb2f525c13809d6a736e434155edf075a06 (patch)
treece3eb047dd9fe9005750a3b1417d95b1aa8fe01e /crates/ra_hir_def/src/adt.rs
parent988f1dda6bde576ec2457dd97a7525014609c771 (diff)
Simplify Arena to use a generic index
Diffstat (limited to 'crates/ra_hir_def/src/adt.rs')
-rw-r--r--crates/ra_hir_def/src/adt.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs
index d55c49938..de07fc952 100644
--- a/crates/ra_hir_def/src/adt.rs
+++ b/crates/ra_hir_def/src/adt.rs
@@ -27,7 +27,7 @@ pub struct StructData {
27#[derive(Debug, Clone, PartialEq, Eq)] 27#[derive(Debug, Clone, PartialEq, Eq)]
28pub struct EnumData { 28pub struct EnumData {
29 pub name: Name, 29 pub name: Name,
30 pub variants: Arena<LocalEnumVariantId, EnumVariantData>, 30 pub variants: Arena<EnumVariantData>,
31} 31}
32 32
33#[derive(Debug, Clone, PartialEq, Eq)] 33#[derive(Debug, Clone, PartialEq, Eq)]
@@ -38,8 +38,8 @@ pub struct EnumVariantData {
38 38
39#[derive(Debug, Clone, PartialEq, Eq)] 39#[derive(Debug, Clone, PartialEq, Eq)]
40pub enum VariantData { 40pub enum VariantData {
41 Record(Arena<LocalStructFieldId, StructFieldData>), 41 Record(Arena<StructFieldData>),
42 Tuple(Arena<LocalStructFieldId, StructFieldData>), 42 Tuple(Arena<StructFieldData>),
43 Unit, 43 Unit,
44} 44}
45 45
@@ -104,7 +104,7 @@ impl HasChildSource for EnumId {
104 104
105fn lower_enum( 105fn lower_enum(
106 db: &dyn DefDatabase, 106 db: &dyn DefDatabase,
107 trace: &mut Trace<LocalEnumVariantId, EnumVariantData, ast::EnumVariant>, 107 trace: &mut Trace<EnumVariantData, ast::EnumVariant>,
108 ast: &InFile<ast::EnumDef>, 108 ast: &InFile<ast::EnumDef>,
109) { 109) {
110 for var in ast.value.variant_list().into_iter().flat_map(|it| it.variants()) { 110 for var in ast.value.variant_list().into_iter().flat_map(|it| it.variants()) {
@@ -128,8 +128,8 @@ impl VariantData {
128 } 128 }
129 } 129 }
130 130
131 pub fn fields(&self) -> &Arena<LocalStructFieldId, StructFieldData> { 131 pub fn fields(&self) -> &Arena<StructFieldData> {
132 const EMPTY: &Arena<LocalStructFieldId, StructFieldData> = &Arena::new(); 132 const EMPTY: &Arena<StructFieldData> = &Arena::new();
133 match &self { 133 match &self {
134 VariantData::Record(fields) | VariantData::Tuple(fields) => fields, 134 VariantData::Record(fields) | VariantData::Tuple(fields) => fields,
135 _ => EMPTY, 135 _ => EMPTY,
@@ -183,11 +183,7 @@ pub enum StructKind {
183 183
184fn lower_struct( 184fn lower_struct(
185 db: &dyn DefDatabase, 185 db: &dyn DefDatabase,
186 trace: &mut Trace< 186 trace: &mut Trace<StructFieldData, Either<ast::TupleFieldDef, ast::RecordFieldDef>>,
187 LocalStructFieldId,
188 StructFieldData,
189 Either<ast::TupleFieldDef, ast::RecordFieldDef>,
190 >,
191 ast: &InFile<ast::StructKind>, 187 ast: &InFile<ast::StructKind>,
192) -> StructKind { 188) -> StructKind {
193 match &ast.value { 189 match &ast.value {