diff options
Diffstat (limited to 'crates/ra_hir/src/code_model_api.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_api.rs | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index e16013956..1fa591ea4 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs | |||
@@ -16,7 +16,7 @@ use crate::{ | |||
16 | code_model_impl::def_id_to_ast, | 16 | code_model_impl::def_id_to_ast, |
17 | docs::{Documentation, Docs, docs_from_ast}, | 17 | docs::{Documentation, Docs, docs_from_ast}, |
18 | module_tree::ModuleId, | 18 | module_tree::ModuleId, |
19 | ids::{FunctionId, StructId, EnumId, EnumVariantId}, | 19 | ids::{FunctionId, StructId, EnumId, EnumVariantId, AstItemDef}, |
20 | }; | 20 | }; |
21 | 21 | ||
22 | /// hir::Crate describes a single crate. It's the main interface with which | 22 | /// hir::Crate describes a single crate. It's the main interface with which |
@@ -197,8 +197,12 @@ pub struct Struct { | |||
197 | } | 197 | } |
198 | 198 | ||
199 | impl Struct { | 199 | impl Struct { |
200 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { | ||
201 | self.id.source(db) | ||
202 | } | ||
203 | |||
200 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 204 | pub fn module(&self, db: &impl HirDatabase) -> Module { |
201 | self.id.loc(db).module | 205 | self.id.module(db) |
202 | } | 206 | } |
203 | 207 | ||
204 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 208 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { |
@@ -217,10 +221,6 @@ impl Struct { | |||
217 | .collect() | 221 | .collect() |
218 | } | 222 | } |
219 | 223 | ||
220 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { | ||
221 | self.id.loc(db).source(db) | ||
222 | } | ||
223 | |||
224 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 224 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { |
225 | db.generic_params((*self).into()) | 225 | db.generic_params((*self).into()) |
226 | } | 226 | } |
@@ -238,8 +238,12 @@ pub struct Enum { | |||
238 | } | 238 | } |
239 | 239 | ||
240 | impl Enum { | 240 | impl Enum { |
241 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { | ||
242 | self.id.source(db) | ||
243 | } | ||
244 | |||
241 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 245 | pub fn module(&self, db: &impl HirDatabase) -> Module { |
242 | self.id.loc(db).module | 246 | self.id.module(db) |
243 | } | 247 | } |
244 | 248 | ||
245 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 249 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { |
@@ -250,10 +254,6 @@ impl Enum { | |||
250 | db.enum_data(*self).variants.clone() | 254 | db.enum_data(*self).variants.clone() |
251 | } | 255 | } |
252 | 256 | ||
253 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { | ||
254 | self.id.loc(db).source(db) | ||
255 | } | ||
256 | |||
257 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 257 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { |
258 | db.generic_params((*self).into()) | 258 | db.generic_params((*self).into()) |
259 | } | 259 | } |
@@ -271,8 +271,11 @@ pub struct EnumVariant { | |||
271 | } | 271 | } |
272 | 272 | ||
273 | impl EnumVariant { | 273 | impl EnumVariant { |
274 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumVariant>) { | ||
275 | self.id.source(db) | ||
276 | } | ||
274 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 277 | pub fn module(&self, db: &impl HirDatabase) -> Module { |
275 | self.id.loc(db).module | 278 | self.id.module(db) |
276 | } | 279 | } |
277 | pub fn parent_enum(&self, db: &impl HirDatabase) -> Enum { | 280 | pub fn parent_enum(&self, db: &impl HirDatabase) -> Enum { |
278 | db.enum_variant_data(*self).parent_enum.clone() | 281 | db.enum_variant_data(*self).parent_enum.clone() |
@@ -296,10 +299,6 @@ impl EnumVariant { | |||
296 | }) | 299 | }) |
297 | .collect() | 300 | .collect() |
298 | } | 301 | } |
299 | |||
300 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumVariant>) { | ||
301 | self.id.loc(db).source(db) | ||
302 | } | ||
303 | } | 302 | } |
304 | 303 | ||
305 | impl Docs for EnumVariant { | 304 | impl Docs for EnumVariant { |
@@ -348,7 +347,11 @@ impl FnSignature { | |||
348 | 347 | ||
349 | impl Function { | 348 | impl Function { |
350 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { | 349 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { |
351 | self.id.loc(db).source(db) | 350 | self.id.source(db) |
351 | } | ||
352 | |||
353 | pub fn module(&self, db: &impl HirDatabase) -> Module { | ||
354 | self.id.module(db) | ||
352 | } | 355 | } |
353 | 356 | ||
354 | pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Arc<BodySyntaxMapping> { | 357 | pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Arc<BodySyntaxMapping> { |