aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/generics.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-02-16 20:19:24 +0000
committerFlorian Diebold <[email protected]>2019-02-16 22:06:41 +0000
commitda7056245d9b59a4b3af7266dd271bab58cb6527 (patch)
tree4f6f813e9c489311d3e402e2e664d248cde1f1ca /crates/ra_hir/src/generics.rs
parentccfc6b11c1e55e28e42bb79414d8349e8eb36086 (diff)
Add generic params to impl blocks
Diffstat (limited to 'crates/ra_hir/src/generics.rs')
-rw-r--r--crates/ra_hir/src/generics.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs
index c72360f44..6ae0ead1b 100644
--- a/crates/ra_hir/src/generics.rs
+++ b/crates/ra_hir/src/generics.rs
@@ -7,7 +7,7 @@ use std::sync::Arc;
7 7
8use ra_syntax::ast::{self, NameOwner, TypeParamsOwner}; 8use ra_syntax::ast::{self, NameOwner, TypeParamsOwner};
9 9
10use crate::{db::PersistentHirDatabase, Name, AsName, Function, Struct, Enum, Trait, Type}; 10use crate::{db::PersistentHirDatabase, Name, AsName, Function, Struct, Enum, Trait, Type, ImplBlock};
11 11
12/// Data about a generic parameter (to a function, struct, impl, ...). 12/// Data about a generic parameter (to a function, struct, impl, ...).
13#[derive(Clone, PartialEq, Eq, Debug)] 13#[derive(Clone, PartialEq, Eq, Debug)]
@@ -30,8 +30,9 @@ pub enum GenericDef {
30 Enum(Enum), 30 Enum(Enum),
31 Trait(Trait), 31 Trait(Trait),
32 Type(Type), 32 Type(Type),
33 ImplBlock(ImplBlock),
33} 34}
34impl_froms!(GenericDef: Function, Struct, Enum, Trait, Type); 35impl_froms!(GenericDef: Function, Struct, Enum, Trait, Type, ImplBlock);
35 36
36impl GenericParams { 37impl GenericParams {
37 pub(crate) fn generic_params_query( 38 pub(crate) fn generic_params_query(
@@ -45,6 +46,7 @@ impl GenericParams {
45 GenericDef::Enum(it) => generics.fill(&*it.source(db).1), 46 GenericDef::Enum(it) => generics.fill(&*it.source(db).1),
46 GenericDef::Trait(it) => generics.fill(&*it.source(db).1), 47 GenericDef::Trait(it) => generics.fill(&*it.source(db).1),
47 GenericDef::Type(it) => generics.fill(&*it.source(db).1), 48 GenericDef::Type(it) => generics.fill(&*it.source(db).1),
49 GenericDef::ImplBlock(it) => generics.fill(&*it.source(db).1),
48 } 50 }
49 51
50 Arc::new(generics) 52 Arc::new(generics)