aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/generics.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-11-20 17:33:18 +0000
committerAleksey Kladov <[email protected]>2019-11-20 17:38:37 +0000
commitcb642fc578100c0945088accb85acb8f03d2e1fd (patch)
tree5a16aa6fbc213909a5d7be3c852fa2a6b9c62299 /crates/ra_hir/src/generics.rs
parentc51dcb1c4bdd71f9f17de508bd0d47e3c06ae1d5 (diff)
Move generic_params query to HIR
Diffstat (limited to 'crates/ra_hir/src/generics.rs')
-rw-r--r--crates/ra_hir/src/generics.rs19
1 files changed, 2 insertions, 17 deletions
diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs
index caedb90e6..54ed03642 100644
--- a/crates/ra_hir/src/generics.rs
+++ b/crates/ra_hir/src/generics.rs
@@ -2,7 +2,7 @@
2use std::sync::Arc; 2use std::sync::Arc;
3 3
4use crate::{ 4use crate::{
5 db::{AstDatabase, DefDatabase, HirDatabase}, 5 db::{DefDatabase, HirDatabase},
6 Adt, Const, Container, Enum, EnumVariant, Function, ImplBlock, Struct, Trait, TypeAlias, Union, 6 Adt, Const, Container, Enum, EnumVariant, Function, ImplBlock, Struct, Trait, TypeAlias, Union,
7}; 7};
8 8
@@ -31,21 +31,6 @@ impl_froms!(
31 Const 31 Const
32); 32);
33 33
34pub(crate) fn generic_params_query(
35 db: &(impl DefDatabase + AstDatabase),
36 def: GenericDef,
37) -> Arc<GenericParams> {
38 let parent = match def {
39 GenericDef::Function(it) => it.container(db).map(GenericDef::from),
40 GenericDef::TypeAlias(it) => it.container(db).map(GenericDef::from),
41 GenericDef::Const(it) => it.container(db).map(GenericDef::from),
42 GenericDef::EnumVariant(it) => Some(it.parent_enum(db).into()),
43 GenericDef::Adt(_) | GenericDef::Trait(_) => None,
44 GenericDef::ImplBlock(_) => None,
45 };
46 Arc::new(GenericParams::new(db, def.into(), parent.map(|it| db.generic_params(it))))
47}
48
49impl GenericDef { 34impl GenericDef {
50 pub(crate) fn resolver(&self, db: &impl HirDatabase) -> crate::Resolver { 35 pub(crate) fn resolver(&self, db: &impl HirDatabase) -> crate::Resolver {
51 match self { 36 match self {
@@ -78,6 +63,6 @@ where
78 T: Into<GenericDef> + Copy, 63 T: Into<GenericDef> + Copy,
79{ 64{
80 fn generic_params(self, db: &impl DefDatabase) -> Arc<GenericParams> { 65 fn generic_params(self, db: &impl DefDatabase) -> Arc<GenericParams> {
81 db.generic_params(self.into()) 66 db.generic_params(self.into().into())
82 } 67 }
83} 68}