From d4f4ae0dd88f0baf0065d612f41fea3d54af79fd Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 22 Nov 2019 18:46:39 +0300 Subject: Move const&static date to hir_def --- crates/ra_hir/src/code_model.rs | 51 +++++------------------------------------ 1 file changed, 6 insertions(+), 45 deletions(-) (limited to 'crates/ra_hir/src/code_model.rs') diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 3daf7488e..1b65eefe5 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs @@ -10,7 +10,7 @@ use hir_def::{ adt::VariantData, body::scope::ExprScopes, builtin_type::BuiltinType, - data::TraitData, + data::{ConstData, TraitData}, nameres::per_ns::PerNs, resolver::{HasResolver, TypeNs}, type_ref::TypeRef, @@ -22,10 +22,10 @@ use hir_expand::{ name::{self, AsName}, }; use ra_db::{CrateId, Edition}; -use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; +use ra_syntax::ast; use crate::{ - db::{AstDatabase, DefDatabase, HirDatabase}, + db::{DefDatabase, HirDatabase}, expr::{BindingAnnotation, Body, BodySourceMap, ExprValidator, Pat, PatId}, ids::{ AstItemDef, ConstId, EnumId, FunctionId, MacroDefId, StaticId, StructId, TraitId, @@ -645,11 +645,11 @@ impl Const { } pub fn data(self, db: &impl HirDatabase) -> Arc { - db.const_data(self) + db.const_data(self.id) } pub fn name(self, db: &impl HirDatabase) -> Option { - self.data(db).name().cloned() + self.data(db).name.clone() } pub fn infer(self, db: &impl HirDatabase) -> Arc { @@ -681,45 +681,6 @@ impl Const { } } -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct ConstData { - pub(crate) name: Option, - pub(crate) type_ref: TypeRef, -} - -impl ConstData { - pub fn name(&self) -> Option<&Name> { - self.name.as_ref() - } - - pub fn type_ref(&self) -> &TypeRef { - &self.type_ref - } - - pub(crate) fn const_data_query( - db: &(impl DefDatabase + AstDatabase), - konst: Const, - ) -> Arc { - let node = konst.source(db).value; - const_data_for(&node) - } - - pub(crate) fn static_data_query( - db: &(impl DefDatabase + AstDatabase), - konst: Static, - ) -> Arc { - let node = konst.source(db).value; - const_data_for(&node) - } -} - -fn const_data_for(node: &N) -> Arc { - let name = node.name().map(|n| n.as_name()); - let type_ref = TypeRef::from_ast_opt(node.ascribed_type()); - let sig = ConstData { name, type_ref }; - Arc::new(sig) -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct Static { pub(crate) id: StaticId, @@ -735,7 +696,7 @@ impl Static { } pub fn data(self, db: &impl HirDatabase) -> Arc { - db.static_data(self) + db.static_data(self.id) } pub fn infer(self, db: &impl HirDatabase) -> Arc { -- cgit v1.2.3