
`CheckAttrVisitor::check_doc_keyword` checks `#[doc(keyword = "..")]` attributes to ensure they are on an empty module, and that the value is a non-empty identifier. The `rustc::existing_doc_keyword` lint checks these attributes to ensure that the value is the name of a keyword. It's silly to have two different checking mechanisms for these attributes. This commit does the following. - Changes `check_doc_keyword` to check that the value is the name of a keyword (avoiding the need for the identifier check, which removes a dependency on `rustc_lexer`). - Removes the lint. - Updates tests accordingly. There is one hack: the `SelfTy` FIXME case used to used to be handled by disabling the lint, but now is handled with a special case in `is_doc_keyword`. That hack will go away if/when the FIXME is fixed. Co-Authored-By: Guillaume Gomez <guillaume1.gomez@gmail.com>
20 lines
479 B
Rust
20 lines
479 B
Rust
// Regression test for <https://github.com/rust-lang/rust/issues/98002>.
|
|
|
|
// Keywords should not be generated in rustdoc JSON output and this test
|
|
// ensures it.
|
|
|
|
#![feature(rustdoc_internals)]
|
|
#![no_std]
|
|
|
|
//@ !has "$.index[*][?(@.name=='match')]"
|
|
//@ has "$.index[*][?(@.name=='foo')]"
|
|
|
|
#[doc(keyword = "match")]
|
|
/// this is a test!
|
|
pub mod foo {}
|
|
|
|
//@ !has "$.index[*][?(@.name=='break')]"
|
|
//@ !has "$.index[*][?(@.name=='bar')]"
|
|
#[doc(keyword = "break")]
|
|
/// hello
|
|
mod bar {}
|