about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/passes/mod.rs2
-rw-r--r--src/test/rustdoc-ui/auxiliary/module_macro_doc.rs1
-rw-r--r--src/test/rustdoc-ui/macro-docs.rs12
-rw-r--r--src/test/rustdoc-ui/macro-docs.stderr20
-rw-r--r--src/test/rustdoc-ui/macro-docs.stdout0
5 files changed, 34 insertions, 1 deletions
diff --git a/src/librustdoc/passes/mod.rs b/src/librustdoc/passes/mod.rs
index 2c2bf2b8c0f..5db2d0747c8 100644
--- a/src/librustdoc/passes/mod.rs
+++ b/src/librustdoc/passes/mod.rs
@@ -178,7 +178,7 @@ crate fn source_span_for_markdown_range(
 
     'outer: for (line_no, md_line) in md_lines.enumerate() {
         loop {
-            let source_line = src_lines.next().expect("could not find markdown in source");
+            let source_line = src_lines.next()?;
             match source_line.find(md_line) {
                 Some(offset) => {
                     if line_no == starting_line {
diff --git a/src/test/rustdoc-ui/auxiliary/module_macro_doc.rs b/src/test/rustdoc-ui/auxiliary/module_macro_doc.rs
new file mode 100644
index 00000000000..9d6b52b95a7
--- /dev/null
+++ b/src/test/rustdoc-ui/auxiliary/module_macro_doc.rs
@@ -0,0 +1 @@
+//! [`long_cat`] is really long
diff --git a/src/test/rustdoc-ui/macro-docs.rs b/src/test/rustdoc-ui/macro-docs.rs
new file mode 100644
index 00000000000..0e8472eb242
--- /dev/null
+++ b/src/test/rustdoc-ui/macro-docs.rs
@@ -0,0 +1,12 @@
+// check-pass
+
+macro_rules! m {
+    () => {
+        /// A
+        //~^ WARNING
+        #[path = "auxiliary/module_macro_doc.rs"]
+        pub mod mymodule;
+    }
+}
+
+m!();
diff --git a/src/test/rustdoc-ui/macro-docs.stderr b/src/test/rustdoc-ui/macro-docs.stderr
new file mode 100644
index 00000000000..e3cc1731146
--- /dev/null
+++ b/src/test/rustdoc-ui/macro-docs.stderr
@@ -0,0 +1,20 @@
+warning: unresolved link to `long_cat`
+  --> $DIR/macro-docs.rs:5:9
+   |
+LL |         /// A
+   |         ^^^^^
+...
+LL | m!();
+   | ---- in this macro invocation
+   |
+   = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
+   = note: the link appears in this line:
+           
+           [`long_cat`] is really long
+            ^^^^^^^^^^
+   = note: no item named `long_cat` in scope
+   = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
+   = note: this warning originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+warning: 1 warning emitted
+
diff --git a/src/test/rustdoc-ui/macro-docs.stdout b/src/test/rustdoc-ui/macro-docs.stdout
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/src/test/rustdoc-ui/macro-docs.stdout