aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/adt.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-10-09 14:17:55 +0100
committerGitHub <[email protected]>2019-10-09 14:17:55 +0100
commit793f7e69f298ccb14936a33c59d7df1527b39af6 (patch)
treeb3d92530c2f9b2caa4015f70803008de47ec088f /crates/ra_hir/src/adt.rs
parentcc2f2a74f66a131bcee63656ec94424b61895ec5 (diff)
parentaa2f58550a3ea135035118da92a0d7733bad2e1a (diff)
Merge #1976
1976: Add `module` methods r=matklad a=viorina Co-authored-by: Ekaterina Babshukova <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r--crates/ra_hir/src/adt.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs
index 99d286215..3e9cd3c63 100644
--- a/crates/ra_hir/src/adt.rs
+++ b/crates/ra_hir/src/adt.rs
@@ -9,7 +9,7 @@ use ra_syntax::ast::{self, NameOwner, StructKind, TypeAscriptionOwner};
9use crate::{ 9use crate::{
10 db::{AstDatabase, DefDatabase, HirDatabase}, 10 db::{AstDatabase, DefDatabase, HirDatabase},
11 type_ref::TypeRef, 11 type_ref::TypeRef,
12 AsName, Enum, EnumVariant, FieldSource, HasSource, Name, Source, Struct, StructField, 12 AsName, Enum, EnumVariant, FieldSource, HasSource, Module, Name, Source, Struct, StructField,
13}; 13};
14 14
15impl Struct { 15impl Struct {
@@ -170,12 +170,20 @@ impl VariantDef {
170 } 170 }
171 } 171 }
172 172
173 pub(crate) fn field(self, db: &impl HirDatabase, name: &Name) -> Option<StructField> { 173 pub fn field(self, db: &impl HirDatabase, name: &Name) -> Option<StructField> {
174 match self { 174 match self {
175 VariantDef::Struct(it) => it.field(db, name), 175 VariantDef::Struct(it) => it.field(db, name),
176 VariantDef::EnumVariant(it) => it.field(db, name), 176 VariantDef::EnumVariant(it) => it.field(db, name),
177 } 177 }
178 } 178 }
179
180 pub fn module(self, db: &impl HirDatabase) -> Module {
181 match self {
182 VariantDef::Struct(it) => it.module(db),
183 VariantDef::EnumVariant(it) => it.module(db),
184 }
185 }
186
179 pub(crate) fn variant_data(self, db: &impl DefDatabase) -> Arc<VariantData> { 187 pub(crate) fn variant_data(self, db: &impl DefDatabase) -> Arc<VariantData> {
180 match self { 188 match self {
181 VariantDef::Struct(it) => it.variant_data(db), 189 VariantDef::Struct(it) => it.variant_data(db),