aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/adt.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-05-23 18:18:47 +0100
committerAleksey Kladov <[email protected]>2019-05-23 18:18:47 +0100
commit5d54aa678153d0af0edc8b4dd2d74709d10ca66c (patch)
tree610413e9cfaf7631b931cf3ca3c57304391cd72d /crates/ra_hir/src/adt.rs
parenteef24bddc96ddcdbcad5fddb9c0cf0e2ccad7681 (diff)
add union to code_model
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r--crates/ra_hir/src/adt.rs7
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
12use crate::{ 12use 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)]
19pub enum AdtDef { 19pub enum AdtDef {
20 Struct(Struct), 20 Struct(Struct),
21 Union(Union),
21 Enum(Enum), 22 Enum(Enum),
22} 23}
23impl_froms!(AdtDef: Struct, Enum); 24impl_froms!(AdtDef: Struct, Union, Enum);
24 25
25impl AdtDef { 26impl 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)]
42pub struct StructData { 45pub struct StructData {
43 pub(crate) name: Option<Name>, 46 pub(crate) name: Option<Name>,