diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-12-25 19:26:18 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2019-12-25 19:26:18 +0000 |
commit | 24e552fadf92c8f1fdcdd459c2a77a5cc05558af (patch) | |
tree | e428c3175bed0a04e3f94d3f340848248c093b59 /crates/ra_hir/src | |
parent | 52b44ba7edbdb64a30b781292eaaea59e8c2490d (diff) | |
parent | c39352fa43f4ff4df835d511b4415c8e770438c4 (diff) |
Merge #2663
2663: Fill in type params in 'add missing impl members' assist r=flodiebold a=flodiebold
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir/src')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index bcfc0d03e..76d8f85f1 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -644,6 +644,17 @@ impl_froms!( | |||
644 | Const | 644 | Const |
645 | ); | 645 | ); |
646 | 646 | ||
647 | impl GenericDef { | ||
648 | pub fn params(self, db: &impl HirDatabase) -> Vec<TypeParam> { | ||
649 | let generics: Arc<hir_def::generics::GenericParams> = db.generic_params(self.into()); | ||
650 | generics | ||
651 | .types | ||
652 | .iter() | ||
653 | .map(|(local_id, _)| TypeParam { id: TypeParamId { parent: self.into(), local_id } }) | ||
654 | .collect() | ||
655 | } | ||
656 | } | ||
657 | |||
647 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] | 658 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
648 | pub struct Local { | 659 | pub struct Local { |
649 | pub(crate) parent: DefWithBody, | 660 | pub(crate) parent: DefWithBody, |