aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model_api.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-25 08:35:38 +0000
committerAleksey Kladov <[email protected]>2019-01-25 08:35:38 +0000
commit2ee2fba752c0f03ab8d1b7009bc56cc785738413 (patch)
tree656ed2e90603c06af1df84c6a9bc3a7c5046eff2 /crates/ra_hir/src/code_model_api.rs
parent946aea3eb34d1b7f09900e017bb94708e6299d0a (diff)
switch to positional enum variants
Diffstat (limited to 'crates/ra_hir/src/code_model_api.rs')
-rw-r--r--crates/ra_hir/src/code_model_api.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs
index a469ad477..4fc47aba5 100644
--- a/crates/ra_hir/src/code_model_api.rs
+++ b/crates/ra_hir/src/code_model_api.rs
@@ -15,7 +15,7 @@ use crate::{
15 generics::GenericParams, 15 generics::GenericParams,
16 docs::{Documentation, Docs, docs_from_ast}, 16 docs::{Documentation, Docs, docs_from_ast},
17 module_tree::ModuleId, 17 module_tree::ModuleId,
18 ids::{FunctionId, StructId, EnumId, EnumVariantId, AstItemDef, ConstId, StaticId, TraitId, TypeId}, 18 ids::{FunctionId, StructId, EnumId, AstItemDef, ConstId, StaticId, TraitId, TypeId},
19}; 19};
20 20
21/// hir::Crate describes a single crate. It's the main interface with which 21/// hir::Crate describes a single crate. It's the main interface with which
@@ -269,18 +269,19 @@ impl Docs for Enum {
269 269
270#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 270#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
271pub struct EnumVariant { 271pub struct EnumVariant {
272 pub(crate) id: EnumVariantId, 272 pub(crate) parent: Enum,
273 pub(crate) idx: u32,
273} 274}
274 275
275impl EnumVariant { 276impl EnumVariant {
276 pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumVariant>) { 277 pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumVariant>) {
277 self.id.source(db) 278 self.source_impl(db)
278 } 279 }
279 pub fn module(&self, db: &impl HirDatabase) -> Module { 280 pub fn module(&self, db: &impl HirDatabase) -> Module {
280 self.id.module(db) 281 self.parent.module(db)
281 } 282 }
282 pub fn parent_enum(&self, db: &impl HirDatabase) -> Enum { 283 pub fn parent_enum(&self, _db: &impl HirDatabase) -> Enum {
283 db.enum_variant_data(*self).parent_enum.clone() 284 self.parent
284 } 285 }
285 286
286 pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { 287 pub fn name(&self, db: &impl HirDatabase) -> Option<Name> {