From 19136cde000c2c227e79bf44febde990fe265cb7 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 11 Jan 2019 20:43:10 +0300 Subject: uncopypaste def sources --- crates/ra_hir/src/code_model_api.rs | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'crates/ra_hir/src/code_model_api.rs') diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 3f882a736..5f61bb589 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use relative_path::RelativePathBuf; use ra_db::{CrateId, Cancelable, FileId}; -use ra_syntax::{ast, TreeArc, SyntaxNode, AstNode}; +use ra_syntax::{ast, TreeArc, SyntaxNode}; use crate::{ Name, DefId, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId, @@ -12,6 +12,7 @@ use crate::{ expr::BodySyntaxMapping, ty::InferenceResult, adt::VariantData, + code_model_impl::def_id_to_ast, }; /// hir::Crate describes a single crate. It's the main interface with which @@ -186,13 +187,7 @@ impl Struct { &self, db: &impl HirDatabase, ) -> Cancelable<(HirFileId, TreeArc)> { - let (file_id, syntax) = self.def_id.source(db); - Ok(( - file_id, - ast::StructDef::cast(&syntax) - .expect("struct def should point to StructDef node") - .to_owned(), - )) + Ok(def_id_to_ast(db, self.def_id)) } } @@ -219,13 +214,7 @@ impl Enum { } pub fn source(&self, db: &impl HirDatabase) -> Cancelable<(HirFileId, TreeArc)> { - let (file_id, syntax) = self.def_id.source(db); - Ok(( - file_id, - ast::EnumDef::cast(&syntax) - .expect("enum def should point to EnumDef node") - .to_owned(), - )) + Ok(def_id_to_ast(db, self.def_id)) } } @@ -259,13 +248,7 @@ impl EnumVariant { &self, db: &impl HirDatabase, ) -> Cancelable<(HirFileId, TreeArc)> { - let (file_id, syntax) = self.def_id.source(db); - Ok(( - file_id, - ast::EnumVariant::cast(&syntax) - .expect("variant def should point to EnumVariant node") - .to_owned(), - )) + Ok(def_id_to_ast(db, self.def_id)) } } @@ -304,7 +287,7 @@ impl Function { } pub fn source(&self, db: &impl HirDatabase) -> Cancelable<(HirFileId, TreeArc)> { - Ok(self.source_impl(db)) + Ok(def_id_to_ast(db, self.def_id)) } pub fn body_syntax_mapping(&self, db: &impl HirDatabase) -> Cancelable> { -- cgit v1.2.3