From f5b97e52c97fe6cc12aba3587c12e37b403deea4 Mon Sep 17 00:00:00 2001 From: Daiki Ihara Date: Wed, 20 Jan 2021 00:43:06 +0900 Subject: Fix broken link in intra-doc --- crates/hir/src/attrs.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'crates/hir/src') diff --git a/crates/hir/src/attrs.rs b/crates/hir/src/attrs.rs index 99fb65bac..9e6a3e155 100644 --- a/crates/hir/src/attrs.rs +++ b/crates/hir/src/attrs.rs @@ -2,6 +2,7 @@ use hir_def::{ attr::{Attrs, Documentation}, path::ModPath, + per_ns::PerNs, resolver::HasResolver, AttrDefId, GenericParamId, ModuleDefId, }; @@ -112,6 +113,11 @@ fn resolve_doc_path( let path = ast::Path::parse(link).ok()?; let modpath = ModPath::from_src(path, &Hygiene::new_unhygienic()).unwrap(); let resolved = resolver.resolve_module_path_in_items(db.upcast(), &modpath); + if resolved == PerNs::none() { + if let Some(trait_id) = resolver.resolve_module_path_in_trait_items(db.upcast(), &modpath) { + return Some(ModuleDefId::TraitId(trait_id)); + }; + } let def = match ns { Some(Namespace::Types) => resolved.take_types()?, Some(Namespace::Values) => resolved.take_values()?, -- cgit v1.2.3