From 3c17643b3085682a695f0e6d80483edc00d04cb3 Mon Sep 17 00:00:00 2001 From: Jeremy Kolb Date: Mon, 28 Jan 2019 09:26:32 -0500 Subject: Go to Implementation for structs and enums --- crates/ra_ide_api/src/navigation_target.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'crates/ra_ide_api/src/navigation_target.rs') diff --git a/crates/ra_ide_api/src/navigation_target.rs b/crates/ra_ide_api/src/navigation_target.rs index d73d4afa7..5ccb5cc2e 100644 --- a/crates/ra_ide_api/src/navigation_target.rs +++ b/crates/ra_ide_api/src/navigation_target.rs @@ -147,6 +147,16 @@ impl NavigationTarget { } } + pub(crate) fn from_impl_block( + db: &RootDatabase, + module: hir::Module, + impl_block: &hir::ImplBlock, + ) -> NavigationTarget { + let (file_id, _) = module.definition_source(db); + let node = module.impl_source(db, impl_block.id()); + NavigationTarget::from_syntax(file_id, "impl".into(), None, node.syntax()) + } + #[cfg(test)] pub(crate) fn assert_match(&self, expected: &str) { let actual = self.debug_render(); -- cgit v1.2.3