
`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>
10 lines
277 B
Text
10 lines
277 B
Text
error: nonexistent keyword `foo df` used in `#[doc(keyword = "...")]`
|
|
--> $DIR/invalid-keyword.rs:3:17
|
|
|
|
|
LL | #[doc(keyword = "foo df")]
|
|
| ^^^^^^^^
|
|
|
|
|
= help: only existing keywords are allowed in core/std
|
|
|
|
error: aborting due to 1 previous error
|
|
|