@@ -70,6 +70,42 @@ fn check_attr_crate_level<S: Stage>(cx: &mut AcceptContext<'_, '_, S>, span: Spa
7070 true
7171}
7272
73+ // FIXME: To be removed once merged and replace with `cx.expected_name_value(span, _name)`.
74+ fn expected_name_value < S : Stage > (
75+ cx : & mut AcceptContext < ' _ , ' _ , S > ,
76+ span : Span ,
77+ _name : Option < Symbol > ,
78+ ) {
79+ cx. emit_lint (
80+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
81+ AttributeLintKind :: ExpectedNameValue ,
82+ span,
83+ ) ;
84+ }
85+
86+ // FIXME: remove this method once merged and use `cx.expected_no_args(span)` instead.
87+ fn expected_no_args < S : Stage > ( cx : & mut AcceptContext < ' _ , ' _ , S > , span : Span ) {
88+ cx. emit_lint (
89+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
90+ AttributeLintKind :: ExpectedNoArgs ,
91+ span,
92+ ) ;
93+ }
94+
95+ // FIXME: remove this method once merged and use `cx.expected_no_args(span)` instead.
96+ // cx.expected_string_literal(span, _actual_literal);
97+ fn expected_string_literal < S : Stage > (
98+ cx : & mut AcceptContext < ' _ , ' _ , S > ,
99+ span : Span ,
100+ _actual_literal : Option < & MetaItemLit > ,
101+ ) {
102+ cx. emit_lint (
103+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
104+ AttributeLintKind :: MalformedDoc ,
105+ span,
106+ ) ;
107+ }
108+
73109fn parse_keyword_and_attribute < S : Stage > (
74110 cx : & mut AcceptContext < ' _ , ' _ , S > ,
75111 path : & OwnedPathParser ,
@@ -78,12 +114,12 @@ fn parse_keyword_and_attribute<S: Stage>(
78114 attr_name : Symbol ,
79115) {
80116 let Some ( nv) = args. name_value ( ) else {
81- cx . expected_name_value ( args. span ( ) . unwrap_or ( path. span ( ) ) , path. word_sym ( ) ) ;
117+ expected_name_value ( cx , args. span ( ) . unwrap_or ( path. span ( ) ) , path. word_sym ( ) ) ;
82118 return ;
83119 } ;
84120
85121 let Some ( value) = nv. value_as_str ( ) else {
86- cx . expected_string_literal ( nv. value_span , Some ( nv. value_as_lit ( ) ) ) ;
122+ expected_string_literal ( cx , nv. value_span , Some ( nv. value_as_lit ( ) ) ) ;
87123 return ;
88124 } ;
89125
@@ -127,7 +163,7 @@ impl DocParser {
127163 match path. word_sym ( ) {
128164 Some ( sym:: no_crate_inject) => {
129165 if let Err ( span) = args. no_args ( ) {
130- cx . expected_no_args ( span) ;
166+ expected_no_args ( cx , span) ;
131167 return ;
132168 }
133169
@@ -153,7 +189,14 @@ impl DocParser {
153189 }
154190 Some ( sym:: attr) => {
155191 let Some ( list) = args. list ( ) else {
156- cx. expected_list ( cx. attr_span , args) ;
192+ // FIXME: remove this method once merged and uncomment the line below instead.
193+ // cx.expected_list(cx.attr_span, args);
194+ let span = cx. attr_span ;
195+ cx. emit_lint (
196+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
197+ AttributeLintKind :: MalformedDoc ,
198+ span,
199+ ) ;
157200 return ;
158201 } ;
159202
@@ -255,7 +298,7 @@ impl DocParser {
255298 inline : DocInline ,
256299 ) {
257300 if let Err ( span) = args. no_args ( ) {
258- cx . expected_no_args ( span) ;
301+ expected_no_args ( cx , span) ;
259302 return ;
260303 }
261304
@@ -337,7 +380,14 @@ impl DocParser {
337380 match sub_item. args ( ) {
338381 a @ ( ArgParser :: NoArgs | ArgParser :: NameValue ( _) ) => {
339382 let Some ( name) = sub_item. path ( ) . word_sym ( ) else {
340- cx. expected_identifier ( sub_item. path ( ) . span ( ) ) ;
383+ // FIXME: remove this method once merged and uncomment the line
384+ // below instead.
385+ // cx.expected_identifier(sub_item.path().span());
386+ cx. emit_lint (
387+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
388+ AttributeLintKind :: MalformedDoc ,
389+ sub_item. path ( ) . span ( ) ,
390+ ) ;
341391 continue ;
342392 } ;
343393 if let Ok ( CfgEntry :: NameValue { name, value, .. } ) =
@@ -400,7 +450,7 @@ impl DocParser {
400450 macro_rules! no_args {
401451 ( $ident: ident) => { {
402452 if let Err ( span) = args. no_args( ) {
403- cx . expected_no_args( span) ;
453+ expected_no_args( cx , span) ;
404454 return ;
405455 }
406456
@@ -419,7 +469,7 @@ impl DocParser {
419469 macro_rules! no_args_and_not_crate_level {
420470 ( $ident: ident) => { {
421471 if let Err ( span) = args. no_args( ) {
422- cx . expected_no_args( span) ;
472+ expected_no_args( cx , span) ;
423473 return ;
424474 }
425475 let span = path. span( ) ;
@@ -432,7 +482,7 @@ impl DocParser {
432482 macro_rules! no_args_and_crate_level {
433483 ( $ident: ident) => { {
434484 if let Err ( span) = args. no_args( ) {
435- cx . expected_no_args( span) ;
485+ expected_no_args( cx , span) ;
436486 return ;
437487 }
438488 let span = path. span( ) ;
@@ -445,12 +495,12 @@ impl DocParser {
445495 macro_rules! string_arg_and_crate_level {
446496 ( $ident: ident) => { {
447497 let Some ( nv) = args. name_value( ) else {
448- cx . expected_name_value( args. span( ) . unwrap_or( path. span( ) ) , path. word_sym( ) ) ;
498+ expected_name_value( cx , args. span( ) . unwrap_or( path. span( ) ) , path. word_sym( ) ) ;
449499 return ;
450500 } ;
451501
452502 let Some ( s) = nv. value_as_str( ) else {
453- cx . expected_string_literal( nv. value_span, Some ( nv. value_as_lit( ) ) ) ;
503+ expected_string_literal( cx , nv. value_span, Some ( nv. value_as_lit( ) ) ) ;
454504 return ;
455505 } ;
456506
@@ -521,7 +571,14 @@ impl DocParser {
521571 self . parse_single_test_doc_attr_item ( cx, mip) ;
522572 }
523573 MetaItemOrLitParser :: Lit ( lit) => {
524- cx. unexpected_literal ( lit. span ) ;
574+ // FIXME: remove this method once merged and uncomment the line
575+ // below instead.
576+ // cx.unexpected_literal(lit.span);
577+ cx. emit_lint (
578+ rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
579+ AttributeLintKind :: MalformedDoc ,
580+ lit. span ,
581+ ) ;
525582 }
526583 }
527584 }
@@ -604,27 +661,14 @@ impl DocParser {
604661 self . parse_single_doc_attr_item ( cx, mip) ;
605662 }
606663 MetaItemOrLitParser :: Lit ( lit) => {
607- // FIXME: Remove the lint and uncomment line after beta backport is
608- // done.
609- // cx.expected_name_value(lit.span, None);
610- cx. emit_lint (
611- rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
612- AttributeLintKind :: MalformedDoc ,
613- lit. span ,
614- ) ;
664+ expected_name_value ( cx, lit. span , None ) ;
615665 }
616666 }
617667 }
618668 }
619669 ArgParser :: NameValue ( nv) => {
620670 if nv. value_as_str ( ) . is_none ( ) {
621- // FIXME: Remove the lint and uncomment line after beta backport is done.
622- // cx.expected_string_literal(nv.value_span, Some(nv.value_as_lit()));
623- cx. emit_lint (
624- rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
625- AttributeLintKind :: MalformedDoc ,
626- nv. value_span ,
627- ) ;
671+ expected_string_literal ( cx, nv. value_span , Some ( nv. value_as_lit ( ) ) ) ;
628672 } else {
629673 unreachable ! (
630674 "Should have been handled at the same time as sugar-syntaxed doc comments"
0 commit comments