
`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
694 B
Rust
20 lines
694 B
Rust
// Ensure keyword docs are present with --document-private-items
|
|
|
|
//@ compile-flags: --document-private-items
|
|
#![feature(rustdoc_internals)]
|
|
|
|
//@ !has "$.index[*][?(@.name=='match')]"
|
|
//@ has "$.index[*][?(@.name=='foo')]"
|
|
//@ is "$.index[*][?(@.name=='foo')].attrs" '["#[doc(keyword = \"match\")]"]'
|
|
//@ is "$.index[*][?(@.name=='foo')].docs" '"this is a test!"'
|
|
#[doc(keyword = "match")]
|
|
/// this is a test!
|
|
pub mod foo {}
|
|
|
|
//@ !has "$.index[*][?(@.name=='break')]"
|
|
//@ has "$.index[*][?(@.name=='bar')]"
|
|
//@ is "$.index[*][?(@.name=='bar')].attrs" '["#[doc(keyword = \"break\")]"]'
|
|
//@ is "$.index[*][?(@.name=='bar')].docs" '"hello"'
|
|
#[doc(keyword = "break")]
|
|
/// hello
|
|
mod bar {}
|