about summary refs log tree commit diff
path: root/src/test/rustdoc
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2020-06-11 22:58:09 -0400
committerJoshua Nelson <jyn514@gmail.com>2020-07-16 18:26:58 -0400
commite63e5cdab02659beec0fd4a50d4b2556b7d6500d (patch)
treefd440ca1917e02228ebbc87dd8b059656d6643ad /src/test/rustdoc
parent5f49f55eb4fc73dc89ab80c124b9eb158e51f57b (diff)
downloadrust-e63e5cdab02659beec0fd4a50d4b2556b7d6500d.tar.gz
rust-e63e5cdab02659beec0fd4a50d4b2556b7d6500d.zip
Support intra-doc links on macro re-exports
This includes both `macro_rules!` and proc-macros.
Diffstat (limited to 'src/test/rustdoc')
-rw-r--r--src/test/rustdoc/intra-doc-crate/auxiliary/macro_inner.rs10
-rw-r--r--src/test/rustdoc/intra-doc-crate/auxiliary/proc_macro.rs20
-rw-r--r--src/test/rustdoc/intra-doc-crate/macro.rs12
3 files changed, 42 insertions, 0 deletions
diff --git a/src/test/rustdoc/intra-doc-crate/auxiliary/macro_inner.rs b/src/test/rustdoc/intra-doc-crate/auxiliary/macro_inner.rs
new file mode 100644
index 00000000000..e54539f0bc5
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/auxiliary/macro_inner.rs
@@ -0,0 +1,10 @@
+#![crate_name = "macro_inner"]
+#![deny(intra_doc_resolution_failure)]
+
+pub struct Foo;
+
+/// See also [`Foo`]
+#[macro_export]
+macro_rules! my_macro {
+    () => {}
+}
diff --git a/src/test/rustdoc/intra-doc-crate/auxiliary/proc_macro.rs b/src/test/rustdoc/intra-doc-crate/auxiliary/proc_macro.rs
new file mode 100644
index 00000000000..0d5a954075d
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/auxiliary/proc_macro.rs
@@ -0,0 +1,20 @@
+// force-host
+// no-prefer-dynamic
+// compile-flags: --crate-type proc-macro
+#![crate_type="proc-macro"]
+#![crate_name="proc_macro_inner"]
+
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+
+/// Links to [`OtherDerive`]
+#[proc_macro_derive(DeriveA)]
+pub fn a_derive(input: TokenStream) -> TokenStream {
+    input
+}
+
+#[proc_macro_derive(OtherDerive)]
+pub fn other_derive(input: TokenStream) -> TokenStream {
+    input
+}
diff --git a/src/test/rustdoc/intra-doc-crate/macro.rs b/src/test/rustdoc/intra-doc-crate/macro.rs
new file mode 100644
index 00000000000..5c8cec128df
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/macro.rs
@@ -0,0 +1,12 @@
+// ignore-tidy-linelength
+// aux-build:macro_inner.rs
+// aux-build:proc_macro.rs
+// build-aux-docs
+#![deny(intra_doc_resolution_failure)]
+extern crate macro_inner;
+extern crate proc_macro_inner;
+
+// @has 'macro/macro.my_macro.html' '//a[@href="../macro_inner/struct.Foo.html"]' 'Foo'
+pub use macro_inner::my_macro;
+// @has 'macro/derive.DeriveA.html' '//a[@href="../proc_macro_inner/derive.OtherDerive.html"]' 'OtherDerive'
+pub use proc_macro_inner::DeriveA;