about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2021-05-04 11:51:11 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2021-08-05 23:08:28 +0200
commit83dcd30ee0639b4f7dc55d370953a76f21ba755f (patch)
tree1a76b935f0baa60962ac2aea9ca781dd9f0abd5f
parent2104bf27d41c061bab2f10400c7b817a5f95722f (diff)
downloadrust-83dcd30ee0639b4f7dc55d370953a76f21ba755f.tar.gz
rust-83dcd30ee0639b4f7dc55d370953a76f21ba755f.zip
Ensure that --generate-link-to-definition is only used with HTML output and is unstable
-rw-r--r--src/librustdoc/config.rs8
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.rs6
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr2
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt.rs6
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt.stderr2
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt2.rs6
-rw-r--r--src/test/rustdoc-ui/generate-link-to-definition-opt2.stderr2
7 files changed, 32 insertions, 0 deletions
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index 99d2039b183..e44158bc042 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -659,6 +659,14 @@ impl Options {
         let nocapture = matches.opt_present("nocapture");
         let generate_link_to_definition = matches.opt_present("generate-link-to-definition");
 
+        if generate_link_to_definition && (show_coverage || output_format != OutputFormat::Html) {
+            diag.struct_err(
+                "--generate-link-to-definition option can only be used with HTML output format",
+            )
+            .emit();
+            return Err(1);
+        }
+
         let (lint_opts, describe_lints, lint_cap) =
             get_cmd_lint_options(matches, error_format, &debugging_opts);
 
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.rs b/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.rs
new file mode 100644
index 00000000000..87620d74ee6
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.rs
@@ -0,0 +1,6 @@
+// This test purpose is to check that the "--generate-link-to-definition"
+// option can only be used on nightly.
+
+// compile-flags: --generate-link-to-definition
+
+pub fn f() {}
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr b/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr
new file mode 100644
index 00000000000..a8ddf91bcbf
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt-unstable.stderr
@@ -0,0 +1,2 @@
+error: the `-Z unstable-options` flag must also be passed to enable the flag `generate-link-to-definition`
+
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt.rs b/src/test/rustdoc-ui/generate-link-to-definition-opt.rs
new file mode 100644
index 00000000000..8f4f561b44d
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt.rs
@@ -0,0 +1,6 @@
+// This test purpose is to check that the "--generate-link-to-definition"
+// option can only be used with HTML generation.
+
+// compile-flags: -Zunstable-options --generate-link-to-definition --output-format json
+
+pub fn f() {}
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt.stderr b/src/test/rustdoc-ui/generate-link-to-definition-opt.stderr
new file mode 100644
index 00000000000..4c8c607e7da
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt.stderr
@@ -0,0 +1,2 @@
+error: --generate-link-to-definition option can only be used with HTML output format
+
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt2.rs b/src/test/rustdoc-ui/generate-link-to-definition-opt2.rs
new file mode 100644
index 00000000000..da5142087dd
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt2.rs
@@ -0,0 +1,6 @@
+// This test purpose is to check that the "--generate-link-to-definition"
+// option can only be used with HTML generation.
+
+// compile-flags: -Zunstable-options --generate-link-to-definition --show-coverage
+
+pub fn f() {}
diff --git a/src/test/rustdoc-ui/generate-link-to-definition-opt2.stderr b/src/test/rustdoc-ui/generate-link-to-definition-opt2.stderr
new file mode 100644
index 00000000000..4c8c607e7da
--- /dev/null
+++ b/src/test/rustdoc-ui/generate-link-to-definition-opt2.stderr
@@ -0,0 +1,2 @@
+error: --generate-link-to-definition option can only be used with HTML output format
+