From 5d54aa678153d0af0edc8b4dd2d74709d10ca66c Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 23 May 2019 20:18:47 +0300 Subject: add union to code_model --- crates/ra_hir/src/adt.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'crates/ra_hir/src/adt.rs') 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::{ }; use crate::{ - Name, AsName, Struct, Enum, EnumVariant, Crate, + Name, AsName, Struct, Union, Enum, EnumVariant, Crate, HirDatabase, HirFileId, StructField, FieldSource, type_ref::TypeRef, DefDatabase, }; @@ -18,14 +18,16 @@ use crate::{ #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub enum AdtDef { Struct(Struct), + Union(Union), Enum(Enum), } -impl_froms!(AdtDef: Struct, Enum); +impl_froms!(AdtDef: Struct, Union, Enum); impl AdtDef { pub(crate) fn krate(self, db: &impl HirDatabase) -> Option { match self { AdtDef::Struct(s) => s.module(db), + AdtDef::Union(s) => s.module(db), AdtDef::Enum(e) => e.module(db), } .krate(db) @@ -38,6 +40,7 @@ impl Struct { } } +/// Note that we use `StructData` for unions as well! #[derive(Debug, Clone, PartialEq, Eq)] pub struct StructData { pub(crate) name: Option, -- cgit v1.2.3