Skip to content

Commit

Permalink
Auto merge of rust-lang#91275 - camelid:deny-test-warnings, r=jyn514
Browse files Browse the repository at this point in the history
Deny warnings in rustdoc non-UI tests

These warnings were silently ignored since they did not appear in a
`.stderr` file and did not fail the test. With this change, warnings in
tests are denied, causing the tests to fail if they have warnings.

This change has already led me to find a bug in rustdoc (rust-lang#91274) and a
useless test (`src/test/rustdoc/primitive/primitive-generic-impl.rs`,
though its uselessness is unrelated to its warnings).

r? `@jyn514`
  • Loading branch information
bors committed Dec 1, 2021
2 parents f04a2f4 + ac88bb7 commit 3c51718
Show file tree
Hide file tree
Showing 66 changed files with 118 additions and 66 deletions.
2 changes: 2 additions & 0 deletions src/test/rustdoc-js/summaries.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#![crate_type = "lib"]
#![crate_name = "summaries"]

#![allow(rustdoc::broken_intra_doc_links)]

//! This *summary* has a [link], [`code`], and [`Sidebar2`] intra-doc.
//!
//! This is the second paragraph. It should not be rendered.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
// check-pass
// aux-build:through-proc-macro-aux.rs
// build-aux-docs
#![warn(broken_intra_doc_links)]

// Ensure rustdoc doesn't panic on this code.

#![warn(rustdoc::broken_intra_doc_links)]

extern crate some_macros;

#[some_macros::second]
pub enum Boom {
/// [Oooops]
//~^ WARNING unresolved link to `Oooops`
Bam,
}

Expand Down
15 changes: 15 additions & 0 deletions src/test/rustdoc-ui/intra-doc/through-proc-macro.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
warning: unresolved link to `Oooops`
--> $DIR/through-proc-macro.rs:13:10
|
LL | /// [Oooops]
| ^^^^^^ no item named `Oooops` in scope
|
note: the lint level is defined here
--> $DIR/through-proc-macro.rs:7:9
|
LL | #![warn(rustdoc::broken_intra_doc_links)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

warning: 1 warning emitted

3 changes: 3 additions & 0 deletions src/test/rustdoc/auto-impl-primitive.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
#![feature(rustdoc_internals)]

#![crate_name = "foo"]

pub use std::fs::File;

// @has 'foo/primitive.i16.html' '//h2[@id="synthetic-implementations"]' 'Auto Trait Implementation'
Expand Down
2 changes: 2 additions & 0 deletions src/test/rustdoc/bad-codeblock-syntax.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(rustdoc::invalid_rust_codeblocks)]

// @has bad_codeblock_syntax/fn.foo.html
// @has - '//*[@class="docblock"]' '\_'
/// ```
Expand Down
9 changes: 5 additions & 4 deletions src/test/rustdoc/check-source-code-urls-to-def.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// aux-build:source_code.rs
// build-aux-docs

#![feature(rustdoc_internals)]

#![crate_name = "foo"]

extern crate source_code;
Expand Down Expand Up @@ -29,21 +31,20 @@ fn babar() {}
// @has - '//a/@href' '/struct.String.html'
// @has - '//a/@href' '/primitive.u32.html'
// @has - '//a/@href' '/primitive.str.html'
// @count - '//a[@href="../../src/foo/check-source-code-urls-to-def.rs.html#21"]' 5
// @count - '//a[@href="../../src/foo/check-source-code-urls-to-def.rs.html#23"]' 5
// @has - '//a[@href="../../source_code/struct.SourceCode.html"]' 'source_code::SourceCode'
pub fn foo(a: u32, b: &str, c: String, d: Foo, e: bar::Bar, f: source_code::SourceCode) {
let x = 12;
let y: Foo = Foo;
let z: Bar = bar::Bar { field: Foo };
babar();
// @has - '//a[@href="../../src/foo/check-source-code-urls-to-def.rs.html#24"]' 'hello'
// @has - '//a[@href="../../src/foo/check-source-code-urls-to-def.rs.html#26"]' 'hello'
y.hello();
}

// @has - '//a[@href="../../src/foo/auxiliary/source-code-bar.rs.html#14-16"]' 'bar::sub::Trait'
// @has - '//a[@href="../../src/foo/auxiliary/source-code-bar.rs.html#14-16"]' 'Trait'
pub fn foo2<T: bar::sub::Trait, V: Trait>(t: &T, v: &V, b: bool) {
}
pub fn foo2<T: bar::sub::Trait, V: Trait>(t: &T, v: &V, b: bool) {}

// @has - '//a[@href="../../foo/primitive.bool.html"]' 'bool'
#[doc(primitive = "bool")]
Expand Down
14 changes: 8 additions & 6 deletions src/test/rustdoc/const-generics/const-impl.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(incomplete_features)]

#![feature(adt_const_params)]

#![crate_name = "foo"]
Expand All @@ -15,23 +17,23 @@ pub struct VSet<T, const ORDER: Order> {
inner: Vec<T>,
}

// @has foo/struct.VSet.html '//div[@id="impl"]/h3[@class="code-header in-band"]' 'impl<T> VSet<T, {Order::Sorted}>'
impl <T> VSet<T, {Order::Sorted}> {
// @has foo/struct.VSet.html '//div[@id="impl"]/h3[@class="code-header in-band"]' 'impl<T> VSet<T, { Order::Sorted }>'
impl<T> VSet<T, { Order::Sorted }> {
pub fn new() -> Self {
Self { inner: Vec::new() }
}
}

// @has foo/struct.VSet.html '//div[@id="impl-1"]/h3[@class="code-header in-band"]' 'impl<T> VSet<T, {Order::Unsorted}>'
impl <T> VSet<T, {Order::Unsorted}> {
// @has foo/struct.VSet.html '//div[@id="impl-1"]/h3[@class="code-header in-band"]' 'impl<T> VSet<T, { Order::Unsorted }>'
impl<T> VSet<T, { Order::Unsorted }> {
pub fn new() -> Self {
Self { inner: Vec::new() }
}
}

pub struct Escape<const S: &'static str>;

// @has foo/struct.Escape.html '//div[@id="impl"]/h3[@class="code-header in-band"]' 'impl Escape<{ r#"<script>alert("Escape");</script>"# }>'
impl Escape<{ r#"<script>alert("Escape");</script>"# }> {
// @has foo/struct.Escape.html '//div[@id="impl"]/h3[@class="code-header in-band"]' 'impl Escape<r#"<script>alert("Escape");</script>"#>'
impl Escape<r#"<script>alert("Escape");</script>"#> {
pub fn f() {}
}
2 changes: 1 addition & 1 deletion src/test/rustdoc/default-trait-method.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![feature(specialization)]
#![feature(min_specialization)]

// @has default_trait_method/trait.Item.html
// @has - '//*[@id="tymethod.foo"]' 'fn foo()'
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/doc-cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,6 @@ pub fn uses_cfg_target_feature() {
// @has doc_cfg/fn.multiple_attrs.html \
// '//*[@id="main"]/*[@class="item-info"]/*[@class="stab portability"]' \
// 'This is supported on x and y and z only.'
#[doc(inline, cfg(x))]
#[doc(cfg(x))]
#[doc(cfg(y), cfg(z))]
pub fn multiple_attrs() {}
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/associated-defaults.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failure)]
#![deny(rustdoc::broken_intra_doc_links)]
#![feature(associated_type_defaults)]

pub trait TraitWithDefault {
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/associated-items.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failure)]
#![deny(rustdoc::broken_intra_doc_links)]

/// [`std::collections::BTreeMap::into_iter`]
/// [`String::from`] is ambiguous as to which `From` impl
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/auxiliary/my-core.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![feature(no_core, lang_items)]
#![feature(no_core, lang_items, rustdoc_internals)]
#![no_core]
#![crate_type="rlib"]

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/additional_doc.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:additional_doc.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

extern crate my_rand;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "my_rand"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub trait RngCore {}
/// Rng extends [`RngCore`].
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/auxiliary/hidden.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "hidden_dep"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

#[doc(hidden)]
pub mod __reexport {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "a"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub struct Foo;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "macro_inner"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub struct Foo;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/auxiliary/module.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "module_inner"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
/// [SomeType] links to [bar]
pub struct SomeType;
pub trait SomeTrait {}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "a"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub mod bar {
pub struct Bar;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "bar"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub trait Foo {
/// [`Bar`] [`Baz`]
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/basic.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:intra-doc-basic.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

// from https://github.com/rust-lang/rust/issues/65983
extern crate a;
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/hidden.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:hidden.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

// tests https://github.com/rust-lang/rust/issues/73363

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/macro.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// aux-build:macro_inner.rs
// aux-build:proc_macro.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
extern crate macro_inner;
extern crate proc_macro_inner;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/module.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// outer.rs
// aux-build: module.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
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'
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/submodule-inner.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:submodule-inner.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

extern crate a;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/submodule-outer.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:submodule-outer.rs
// edition:2018
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

extern crate bar as bar_;

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/cross-crate/traits.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// aux-build:traits.rs
// build-aux-docs
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

extern crate inner;
use inner::SomeTrait;
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/disambiguators-removed.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(intra_doc_link_resolution_failure)]
#![deny(rustdoc::broken_intra_doc_links)]
// first try backticks
/// Trait: [`trait@Name`], fn: [`fn@Name`], [`Name`][`macro@Name`]
// @has disambiguators_removed/struct.AtDisambiguator.html
Expand Down
2 changes: 2 additions & 0 deletions src/test/rustdoc/intra-doc/email-address.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(rustdoc::broken_intra_doc_links)]

//! Email me at <[email protected]>.
//! Email me at <[email protected]>.
//! Email me at <hello@localhost> (this warns but will still become a link).
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/extern-crate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
// though they would never actually get displayed. This tripped intra-doc-link resolution failures,
// for items that aren't under our control, and not actually getting documented!

#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

extern crate inner;
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/external-traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ignore-cross-compile

#![crate_name = "outer"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

// using a trait that has intra-doc links on it from another crate (whether re-exporting or just
// implementing it) used to give spurious resolution failure warnings
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/in-bodies.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// we need to make sure that intra-doc links on trait impls get resolved in the right scope

#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub mod inner {
pub struct SomethingOutOfScope;
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/issue-82209.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![crate_name = "foo"]
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
pub enum Foo {
Bar {
abc: i32,
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/libstd-re-export.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
#![feature(intra_doc_pointers)]

pub use std::*;
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/mod-ambiguity.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]


pub fn foo() {
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/prim-assoc.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

//! [i32::MAX]
// @has prim_assoc/index.html '//a[@href="{{channel}}/std/primitive.i32.html#associatedconstant.MAX"]' "i32::MAX"
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/prim-methods-external-core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// ignore-cross-compile
// only-linux

#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
#![feature(no_core, lang_items)]
#![no_core]
#![crate_type = "rlib"]
Expand Down
4 changes: 2 additions & 2 deletions src/test/rustdoc/intra-doc/prim-methods-local.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#![deny(broken_intra_doc_links)]
#![feature(no_core, lang_items)]
#![deny(rustdoc::broken_intra_doc_links)]
#![feature(no_core, lang_items, rustdoc_internals)]
#![no_core]
#![crate_type = "rlib"]

Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/prim-methods.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]


// @has prim_methods/index.html
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/prim-precedence.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

pub mod char {
/// [char]
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/primitive-disambiguators.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]
// @has primitive_disambiguators/index.html
// @has - '//a/@href' '{{channel}}/std/primitive.str.html#method.trim'
//! [str::trim()]
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/primitive-non-default-impl.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]


// @has primitive_non_default_impl/fn.str_methods.html
Expand Down
2 changes: 1 addition & 1 deletion src/test/rustdoc/intra-doc/private-failures-ignored.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// These failures were legitimate, but not truly relevant - the docs in question couldn't be
// checked for accuracy anyway.

#![deny(broken_intra_doc_links)]
#![deny(rustdoc::broken_intra_doc_links)]

/// ooh, i'm a [rebel] just for kicks
struct SomeStruct;
5 changes: 4 additions & 1 deletion src/test/rustdoc/intra-doc/private.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
#![crate_name = "private"]
// compile-flags: --document-private-items

// make sure to update `rustdoc-ui/intra-doc/private.rs` if you update this file

#![allow(rustdoc::private_intra_doc_links)]

#![crate_name = "private"]

/// docs [DontDocMe] [DontDocMe::f] [DontDocMe::x]
// @has private/struct.DocMe.html '//*a[@href="struct.DontDocMe.html"]' 'DontDocMe'
// @has private/struct.DocMe.html '//*a[@href="struct.DontDocMe.html#method.f"]' 'DontDocMe::f'
Expand Down
Loading

0 comments on commit 3c51718

Please sign in to comment.