diff options
Diffstat (limited to 'crates/ra_hir/src/generics.rs')
-rw-r--r-- | crates/ra_hir/src/generics.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs index c494beeb0..0f759a235 100644 --- a/crates/ra_hir/src/generics.rs +++ b/crates/ra_hir/src/generics.rs | |||
@@ -7,7 +7,10 @@ use std::sync::Arc; | |||
7 | 7 | ||
8 | use ra_syntax::ast::{self, NameOwner, TypeParamsOwner}; | 8 | use ra_syntax::ast::{self, NameOwner, TypeParamsOwner}; |
9 | 9 | ||
10 | use crate::{db::PersistentHirDatabase, Name, AsName, Function, Struct, Enum, Trait, Type, ImplBlock}; | 10 | use crate::{ |
11 | db::PersistentHirDatabase, | ||
12 | Name, AsName, Function, Struct, Enum, Trait, TypeAlias, ImplBlock | ||
13 | }; | ||
11 | 14 | ||
12 | /// Data about a generic parameter (to a function, struct, impl, ...). | 15 | /// Data about a generic parameter (to a function, struct, impl, ...). |
13 | #[derive(Clone, PartialEq, Eq, Debug)] | 16 | #[derive(Clone, PartialEq, Eq, Debug)] |
@@ -30,10 +33,10 @@ pub enum GenericDef { | |||
30 | Struct(Struct), | 33 | Struct(Struct), |
31 | Enum(Enum), | 34 | Enum(Enum), |
32 | Trait(Trait), | 35 | Trait(Trait), |
33 | Type(Type), | 36 | TypeAlias(TypeAlias), |
34 | ImplBlock(ImplBlock), | 37 | ImplBlock(ImplBlock), |
35 | } | 38 | } |
36 | impl_froms!(GenericDef: Function, Struct, Enum, Trait, Type, ImplBlock); | 39 | impl_froms!(GenericDef: Function, Struct, Enum, Trait, TypeAlias, ImplBlock); |
37 | 40 | ||
38 | impl GenericParams { | 41 | impl GenericParams { |
39 | pub(crate) fn generic_params_query( | 42 | pub(crate) fn generic_params_query( |
@@ -43,7 +46,7 @@ impl GenericParams { | |||
43 | let mut generics = GenericParams::default(); | 46 | let mut generics = GenericParams::default(); |
44 | let parent = match def { | 47 | let parent = match def { |
45 | GenericDef::Function(it) => it.impl_block(db), | 48 | GenericDef::Function(it) => it.impl_block(db), |
46 | GenericDef::Type(it) => it.impl_block(db), | 49 | GenericDef::TypeAlias(it) => it.impl_block(db), |
47 | GenericDef::Struct(_) | GenericDef::Enum(_) | GenericDef::Trait(_) => None, | 50 | GenericDef::Struct(_) | GenericDef::Enum(_) | GenericDef::Trait(_) => None, |
48 | GenericDef::ImplBlock(_) => None, | 51 | GenericDef::ImplBlock(_) => None, |
49 | }; | 52 | }; |
@@ -54,7 +57,7 @@ impl GenericParams { | |||
54 | GenericDef::Struct(it) => generics.fill(&*it.source(db).1, start), | 57 | GenericDef::Struct(it) => generics.fill(&*it.source(db).1, start), |
55 | GenericDef::Enum(it) => generics.fill(&*it.source(db).1, start), | 58 | GenericDef::Enum(it) => generics.fill(&*it.source(db).1, start), |
56 | GenericDef::Trait(it) => generics.fill(&*it.source(db).1, start), | 59 | GenericDef::Trait(it) => generics.fill(&*it.source(db).1, start), |
57 | GenericDef::Type(it) => generics.fill(&*it.source(db).1, start), | 60 | GenericDef::TypeAlias(it) => generics.fill(&*it.source(db).1, start), |
58 | GenericDef::ImplBlock(it) => generics.fill(&*it.source(db).1, start), | 61 | GenericDef::ImplBlock(it) => generics.fill(&*it.source(db).1, start), |
59 | } | 62 | } |
60 | 63 | ||