Merge pull request #20384 from vxpm/fix-external-docs

fix external docs for exported macros
This commit is contained in:
Chayim Refael Friedman 2025-08-05 21:21:24 +00:00 committed by GitHub
commit 75436532df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 1 deletions

View File

@ -390,7 +390,8 @@ fn get_doc_links(
let (mut web_url, mut local_url) = get_doc_base_urls(db, target, target_dir, sysroot);
if let Some(path) = mod_path_of_def(db, target) {
let append_mod = !matches!(def, Definition::Macro(m) if m.is_macro_export(db));
if append_mod && let Some(path) = mod_path_of_def(db, target) {
web_url = join_url(web_url, &path);
local_url = join_url(local_url, &path);
}

View File

@ -414,6 +414,30 @@ fn foo() {
)
}
#[test]
fn external_docs_macro_export() {
check_external_docs(
r#"
//- /lib.rs crate:foo
pub mod inner {
#[macro_export]
macro_rules! my_macro {
() => {};
}
}
//- /main.rs crate:bar deps:foo
fn main() {
foo::my_m$0acro!();
}
"#,
Some("/home/user/project"),
Some(expect![[r#"https://docs.rs/foo/*/foo/macro.my_macro.html"#]]),
Some(expect![[r#"file:///home/user/project/doc/foo/macro.my_macro.html"#]]),
Some("/sysroot"),
);
}
#[test]
fn doc_links_items_simple() {
check_doc_links(