diff options
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r-- | crates/ra_hir/src/adt.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs index e027eedd9..5e5905f15 100644 --- a/crates/ra_hir/src/adt.rs +++ b/crates/ra_hir/src/adt.rs | |||
@@ -10,7 +10,7 @@ use ra_syntax::{ | |||
10 | }; | 10 | }; |
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | Name, AsName, Struct, Enum, EnumVariant, Crate, | 13 | Name, AsName, Struct, Union, Enum, EnumVariant, Crate, |
14 | HirDatabase, HirFileId, StructField, FieldSource, | 14 | HirDatabase, HirFileId, StructField, FieldSource, |
15 | type_ref::TypeRef, DefDatabase, | 15 | type_ref::TypeRef, DefDatabase, |
16 | }; | 16 | }; |
@@ -18,14 +18,16 @@ use crate::{ | |||
18 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] | 18 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
19 | pub enum AdtDef { | 19 | pub enum AdtDef { |
20 | Struct(Struct), | 20 | Struct(Struct), |
21 | Union(Union), | ||
21 | Enum(Enum), | 22 | Enum(Enum), |
22 | } | 23 | } |
23 | impl_froms!(AdtDef: Struct, Enum); | 24 | impl_froms!(AdtDef: Struct, Union, Enum); |
24 | 25 | ||
25 | impl AdtDef { | 26 | impl AdtDef { |
26 | pub(crate) fn krate(self, db: &impl HirDatabase) -> Option<Crate> { | 27 | pub(crate) fn krate(self, db: &impl HirDatabase) -> Option<Crate> { |
27 | match self { | 28 | match self { |
28 | AdtDef::Struct(s) => s.module(db), | 29 | AdtDef::Struct(s) => s.module(db), |
30 | AdtDef::Union(s) => s.module(db), | ||
29 | AdtDef::Enum(e) => e.module(db), | 31 | AdtDef::Enum(e) => e.module(db), |
30 | } | 32 | } |
31 | .krate(db) | 33 | .krate(db) |
@@ -38,6 +40,7 @@ impl Struct { | |||
38 | } | 40 | } |
39 | } | 41 | } |
40 | 42 | ||
43 | /// Note that we use `StructData` for unions as well! | ||
41 | #[derive(Debug, Clone, PartialEq, Eq)] | 44 | #[derive(Debug, Clone, PartialEq, Eq)] |
42 | pub struct StructData { | 45 | pub struct StructData { |
43 | pub(crate) name: Option<Name>, | 46 | pub(crate) name: Option<Name>, |