File tree Expand file tree Collapse file tree 3 files changed +19
-6
lines changed Expand file tree Collapse file tree 3 files changed +19
-6
lines changed Original file line number Diff line number Diff line change @@ -214,6 +214,8 @@ passes_doc_keyword_only_impl =
214214passes_doc_test_takes_list =
215215 `#[doc(test(...)]` takes a list of attributes
216216
217+ passes_doc_test_literal = `#![doc(test(...)]` does not take a literal
218+
217219passes_doc_test_unknown =
218220 unknown `doc(test)` attribute `{ $path } `
219221
Original file line number Diff line number Diff line change @@ -944,21 +944,28 @@ impl CheckAttrVisitor<'_> {
944944 let mut is_valid = true ;
945945 if let Some ( metas) = meta. meta_item_list ( ) {
946946 for i_meta in metas {
947- match i_meta. name_or_empty ( ) {
948- sym:: attr | sym:: no_crate_inject => { }
949- _ => {
947+ match ( i_meta. name_or_empty ( ) , i_meta . meta_item ( ) ) {
948+ ( sym:: attr | sym:: no_crate_inject, _ ) => { }
949+ ( _ , Some ( m ) ) => {
950950 self . tcx . emit_spanned_lint (
951951 INVALID_DOC_ATTRIBUTES ,
952952 hir_id,
953953 i_meta. span ( ) ,
954954 errors:: DocTestUnknown {
955- path : rustc_ast_pretty:: pprust:: path_to_string (
956- & i_meta. meta_item ( ) . unwrap ( ) . path ,
957- ) ,
955+ path : rustc_ast_pretty:: pprust:: path_to_string ( & m. path ) ,
958956 } ,
959957 ) ;
960958 is_valid = false ;
961959 }
960+ ( _, None ) => {
961+ self . tcx . emit_spanned_lint (
962+ INVALID_DOC_ATTRIBUTES ,
963+ hir_id,
964+ i_meta. span ( ) ,
965+ errors:: DocTestLiteral ,
966+ ) ;
967+ is_valid = false ;
968+ }
962969 }
963970 }
964971 } else {
Original file line number Diff line number Diff line change @@ -281,6 +281,10 @@ pub struct DocTestUnknown {
281281 pub path : String ,
282282}
283283
284+ #[ derive( LintDiagnostic ) ]
285+ #[ diag( passes_doc_test_literal) ]
286+ pub struct DocTestLiteral ;
287+
284288#[ derive( LintDiagnostic ) ]
285289#[ diag( passes_doc_test_takes_list) ]
286290pub struct DocTestTakesList ;
You can’t perform that action at this time.
0 commit comments