diff options
Diffstat (limited to 'crates/hir/src/has_source.rs')
-rw-r--r-- | crates/hir/src/has_source.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/hir/src/has_source.rs b/crates/hir/src/has_source.rs index 0dc07c33e..dd7c0c570 100644 --- a/crates/hir/src/has_source.rs +++ b/crates/hir/src/has_source.rs | |||
@@ -10,8 +10,8 @@ use hir_expand::InFile; | |||
10 | use syntax::ast; | 10 | use syntax::ast; |
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | db::HirDatabase, Const, Enum, Field, FieldSource, Function, Impl, LifetimeParam, MacroDef, | 13 | db::HirDatabase, Const, ConstParam, Enum, Field, FieldSource, Function, Impl, LifetimeParam, |
14 | Module, Static, Struct, Trait, TypeAlias, TypeParam, Union, Variant, | 14 | MacroDef, Module, Static, Struct, Trait, TypeAlias, TypeParam, Union, Variant, |
15 | }; | 15 | }; |
16 | 16 | ||
17 | pub trait HasSource { | 17 | pub trait HasSource { |
@@ -140,3 +140,11 @@ impl HasSource for LifetimeParam { | |||
140 | child_source.map(|it| it[self.id.local_id].clone()) | 140 | child_source.map(|it| it[self.id.local_id].clone()) |
141 | } | 141 | } |
142 | } | 142 | } |
143 | |||
144 | impl HasSource for ConstParam { | ||
145 | type Ast = ast::ConstParam; | ||
146 | fn source(self, db: &dyn HirDatabase) -> InFile<Self::Ast> { | ||
147 | let child_source = self.id.parent.child_source(db.upcast()); | ||
148 | child_source.map(|it| it[self.id.local_id].clone()) | ||
149 | } | ||
150 | } | ||