Skip to content

Commit

Permalink
Rollup merge of #94529 - GuillaumeGomez:unused-doc-comments-blocks, r…
Browse files Browse the repository at this point in the history
…=estebank

Unused doc comments blocks

Fixes #77030.
  • Loading branch information
matthiaskrgr authored Mar 2, 2022
2 parents f90307c + 6f0eb2a commit dc1a03b
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 7 deletions.
4 changes: 2 additions & 2 deletions compiler/rustc_codegen_llvm/src/llvm/ffi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -576,12 +576,12 @@ pub enum PassKind {
Module,
}

/// LLVMRustThinLTOData
// LLVMRustThinLTOData
extern "C" {
pub type ThinLTOData;
}

/// LLVMRustThinLTOBuffer
// LLVMRustThinLTOBuffer
extern "C" {
pub type ThinLTOBuffer;
}
Expand Down
10 changes: 10 additions & 0 deletions compiler/rustc_lint/src/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1086,6 +1086,16 @@ impl EarlyLintPass for UnusedDocComment {
fn check_generic_param(&mut self, cx: &EarlyContext<'_>, param: &ast::GenericParam) {
warn_if_doc(cx, param.ident.span, "generic parameters", &param.attrs);
}

fn check_block(&mut self, cx: &EarlyContext<'_>, block: &ast::Block) {
warn_if_doc(cx, block.span, "block", &block.attrs());
}

fn check_item(&mut self, cx: &EarlyContext<'_>, item: &ast::Item) {
if let ast::ItemKind::ForeignMod(_) = item.kind {
warn_if_doc(cx, item.span, "extern block", &item.attrs);
}
}
}

declare_lint! {
Expand Down
7 changes: 4 additions & 3 deletions library/portable-simd/crates/core_simd/src/intrinsics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@
//!
//! Unless stated otherwise, all intrinsics for binary operations require SIMD vectors of equal types and lengths.
/// These intrinsics aren't linked directly from LLVM and are mostly undocumented, however they are
/// mostly lowered to the matching LLVM instructions by the compiler in a fairly straightforward manner.
/// The associated LLVM instruction or intrinsic is documented alongside each Rust intrinsic function.

// These intrinsics aren't linked directly from LLVM and are mostly undocumented, however they are
// mostly lowered to the matching LLVM instructions by the compiler in a fairly straightforward manner.
// The associated LLVM instruction or intrinsic is documented alongside each Rust intrinsic function.
extern "platform-intrinsic" {
/// add/fadd
pub(crate) fn simd_add<T>(x: T, y: T) -> T;
Expand Down
14 changes: 14 additions & 0 deletions src/test/ui/lint/unused/unused-doc-comments-edge-cases.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,18 @@ fn doc_comment_on_expr(num: u8) -> bool {
fn doc_comment_on_generic<#[doc = "x"] T>(val: T) {}
//~^ ERROR: unused doc comment

fn doc_comment_on_block() {
/// unused doc comment
//~^ ERROR: unused doc comment
{
let x = 12;
}
}

/// unused doc comment
//~^ ERROR: unused doc comment
extern "C" {
fn foo();
}

fn main() {}
28 changes: 27 additions & 1 deletion src/test/ui/lint/unused/unused-doc-comments-edge-cases.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,32 @@ LL | fn doc_comment_on_generic<#[doc = "x"] T>(val: T) {}
|
= help: use `//` for a plain comment

error: unused doc comment
--> $DIR/unused-doc-comments-edge-cases.rs:33:5
|
LL | /// unused doc comment
| ^^^^^^^^^^^^^^^^^^^^^^
LL |
LL | / {
LL | | let x = 12;
LL | | }
| |_____- rustdoc does not generate documentation for expressions
|
= help: use `//` for a plain comment

error: unused doc comment
--> $DIR/unused-doc-comments-edge-cases.rs:40:1
|
LL | /// unused doc comment
| ^^^^^^^^^^^^^^^^^^^^^^
LL |
LL | / extern "C" {
LL | | fn foo();
LL | | }
| |_- rustdoc does not generate documentation for extern block
|
= help: use `//` for a plain comment

error[E0308]: mismatched types
--> $DIR/unused-doc-comments-edge-cases.rs:14:9
|
Expand All @@ -63,7 +89,7 @@ help: you might have meant to return this value
LL | return true;
| ++++++ +

error: aborting due to 6 previous errors
error: aborting due to 8 previous errors

Some errors have detailed explanations: E0308, E0658.
For more information about an error, try `rustc --explain E0308`.

0 comments on commit dc1a03b

Please sign in to comment.