about summary refs log tree commit diff
path: root/src/test/rustdoc
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2020-07-11 13:28:05 -0400
committerJoshua Nelson <jyn514@gmail.com>2020-07-16 18:26:58 -0400
commit82b3b0705bfe67ab1565505ae1422f9302e12b6e (patch)
tree1441de7eead123208c0e16483c63ee3fe8c08499 /src/test/rustdoc
parente63e5cdab02659beec0fd4a50d4b2556b7d6500d (diff)
Support intra-doc links on trait and module re-exports
Trait implementations are treated the same as modules for the purposes
of intra-doc links.
Diffstat (limited to 'src/test/rustdoc')
-rw-r--r--src/test/rustdoc/intra-doc-crate/auxiliary/module.rs7
-rw-r--r--src/test/rustdoc/intra-doc-crate/auxiliary/traits.rs16
-rw-r--r--src/test/rustdoc/intra-doc-crate/module.rs8
-rw-r--r--src/test/rustdoc/intra-doc-crate/traits.rs15
4 files changed, 46 insertions, 0 deletions
diff --git a/src/test/rustdoc/intra-doc-crate/auxiliary/module.rs b/src/test/rustdoc/intra-doc-crate/auxiliary/module.rs
new file mode 100644
index 00000000000..5d63d7e37b6
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/auxiliary/module.rs
@@ -0,0 +1,7 @@
+#![crate_name = "module_inner"]
+#![deny(intra_doc_link_resolution_failure)]
+/// [SomeType] links to [bar]
+pub struct SomeType;
+pub trait SomeTrait {}
+/// [bar] links to [SomeTrait] and also [SomeType]
+pub mod bar {}
diff --git a/src/test/rustdoc/intra-doc-crate/auxiliary/traits.rs b/src/test/rustdoc/intra-doc-crate/auxiliary/traits.rs
new file mode 100644
index 00000000000..5c3360dc5fd
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/auxiliary/traits.rs
@@ -0,0 +1,16 @@
+#![crate_name = "inner"]
+/// this is a trait
+pub trait SomeTrait {
+    /// this is a method for [SomeTrait]
+    fn foo();
+}
+
+pub mod bar {
+    use super::SomeTrait;
+
+    pub struct BarStruct;
+
+    impl SomeTrait for BarStruct {
+        fn foo() {}
+    }
+}
diff --git a/src/test/rustdoc/intra-doc-crate/module.rs b/src/test/rustdoc/intra-doc-crate/module.rs
new file mode 100644
index 00000000000..67fa7293f37
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/module.rs
@@ -0,0 +1,8 @@
+// outer.rs
+// aux-build: module.rs
+// build-aux-docs
+#![deny(intra_doc_link_resolution_failure)]
+extern crate module_inner;
+// @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait'
+// @has 'module/bar/index.html' '//a[@href="../../module_inner/struct.SomeType.html"]' 'SomeType'
+pub use module_inner::bar;
diff --git a/src/test/rustdoc/intra-doc-crate/traits.rs b/src/test/rustdoc/intra-doc-crate/traits.rs
new file mode 100644
index 00000000000..0672c76435b
--- /dev/null
+++ b/src/test/rustdoc/intra-doc-crate/traits.rs
@@ -0,0 +1,15 @@
+// aux-build:traits.rs
+// build-aux-docs
+// ignore-tidy-line-length
+#![deny(intra_doc_link_resolution_failure)]
+
+extern crate inner;
+use inner::SomeTrait;
+
+pub struct SomeStruct;
+
+ // @has 'traits/struct.SomeStruct.html' '//a[@href="../inner/trait.SomeTrait.html"]' 'SomeTrait'
+impl SomeTrait for SomeStruct {
+    // @has 'traits/struct.SomeStruct.html' '//a[@href="../inner/trait.SomeTrait.html"]' 'SomeTrait'
+    fn foo() {}
+}