about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-08-26 16:38:58 +0000
committerbors <bors@rust-lang.org>2020-08-26 16:38:58 +0000
commit1f2dd3b56aec4d8f97eb0b0552c166ef549d3316 (patch)
tree4d026d8391b8cdaa7304a2a7ec1dada75278f2c3 /src/test
parent6ead62235a50e43b08a103d403d6fbfbc2b48352 (diff)
parente11b3ee742ff5e5163ae6123a37f9fa757804842 (diff)
downloadrust-1f2dd3b56aec4d8f97eb0b0552c166ef549d3316.tar.gz
rust-1f2dd3b56aec4d8f97eb0b0552c166ef549d3316.zip
Auto merge of #75903 - jyn514:lint-refactor, r=GuillaumeGomez
Warn about unknown or renamed lints in rustdoc

Fixes https://github.com/rust-lang/rust/issues/75884.
This is best reviewed one commit at a time.
r? @GuillaumeGomez

Originally I tried to do a much broader refactoring that got rid of `init_lints` altogether. My reasoning is that now the lints aren't being run anymore (after https://github.com/rust-lang/rust/pull/73566), there's no need to ignore them explicitly. But it seems there are still some lints that aren't affected by setting `lint_mod` to a no-op:

```
deny(pub_use_of_private_extern_crate)
deny(const_err)
warn(unused_imports)
```

(there are possibly more, these are just the ones that failed in the rustdoc test suite).

Some of these seem like we really should be warning about, but that's a much larger change and I don't propose to make it here. So for the time being, this just adds the `unknown_lints` and `renamed_or_removed_lints` passes to the list of lints rustdoc warns about.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/rustdoc-ui/unknown-renamed-lints.rs8
-rw-r--r--src/test/rustdoc-ui/unknown-renamed-lints.stderr28
2 files changed, 36 insertions, 0 deletions
diff --git a/src/test/rustdoc-ui/unknown-renamed-lints.rs b/src/test/rustdoc-ui/unknown-renamed-lints.rs
new file mode 100644
index 00000000000..7faa82ea429
--- /dev/null
+++ b/src/test/rustdoc-ui/unknown-renamed-lints.rs
@@ -0,0 +1,8 @@
+#![deny(unknown_lints)]
+//~^ NOTE lint level is defined
+#![deny(renamed_and_removed_lints)]
+//~^ NOTE lint level is defined
+#![deny(x)]
+//~^ ERROR unknown lint
+#![deny(intra_doc_link_resolution_failure)]
+//~^ ERROR lint `intra_doc_link_resolution_failure` has been renamed
diff --git a/src/test/rustdoc-ui/unknown-renamed-lints.stderr b/src/test/rustdoc-ui/unknown-renamed-lints.stderr
new file mode 100644
index 00000000000..f0917f194bb
--- /dev/null
+++ b/src/test/rustdoc-ui/unknown-renamed-lints.stderr
@@ -0,0 +1,28 @@
+error: unknown lint: `x`
+  --> $DIR/unknown-renamed-lints.rs:5:9
+   |
+LL | #![deny(x)]
+   |         ^
+   |
+note: the lint level is defined here
+  --> $DIR/unknown-renamed-lints.rs:1:9
+   |
+LL | #![deny(unknown_lints)]
+   |         ^^^^^^^^^^^^^
+
+error: lint `intra_doc_link_resolution_failure` has been renamed to `broken_intra_doc_links`
+  --> $DIR/unknown-renamed-lints.rs:7:9
+   |
+LL | #![deny(intra_doc_link_resolution_failure)]
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `broken_intra_doc_links`
+   |
+note: the lint level is defined here
+  --> $DIR/unknown-renamed-lints.rs:3:9
+   |
+LL | #![deny(renamed_and_removed_lints)]
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: Compilation failed, aborting rustdoc
+
+error: aborting due to 3 previous errors
+