@@ -14,8 +14,9 @@ use super::prelude::{ALL_TARGETS, AllowedTargets};
1414use super :: { AcceptMapping , AttributeParser } ;
1515use crate :: context:: { AcceptContext , FinalizeContext , Stage } ;
1616use crate :: errors:: {
17- DocAliasDuplicated , DocAutoCfgExpectsHideOrShow , DocAutoCfgHideShowExpectsList ,
18- DocAutoCfgHideShowUnexpectedItem , DocAutoCfgWrongLiteral , DocUnknownAny , DocUnknownInclude ,
17+ AttrCrateLevelOnly , DocAliasDuplicated , DocAutoCfgExpectsHideOrShow ,
18+ DocAutoCfgHideShowExpectsList , DocAutoCfgHideShowUnexpectedItem , DocAutoCfgWrongLiteral ,
19+ DocTestLiteral , DocTestTakesList , DocTestUnknown , DocUnknownAny , DocUnknownInclude ,
1920 DocUnknownPasses , DocUnknownPlugins , DocUnknownSpotlight , IllFormedAttributeInput ,
2021} ;
2122use crate :: parser:: { ArgParser , MetaItemOrLitParser , MetaItemParser , OwnedPathParser } ;
@@ -67,9 +68,9 @@ fn check_attr_not_crate_level<S: Stage>(
6768/// Checks that an attribute is used at the crate level. Returns `true` if valid.
6869fn check_attr_crate_level < S : Stage > ( cx : & mut AcceptContext < ' _ , ' _ , S > , span : Span ) -> bool {
6970 if cx. shared . target != Target :: Crate {
70- cx. emit_lint (
71+ cx. emit_dyn_lint (
7172 rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
72- AttributeLintKind :: AttrCrateLevelOnly ,
73+ |dcx , level| AttrCrateLevelOnly . into_diag ( dcx , level ) ,
7374 span,
7475 ) ;
7576 return false ;
@@ -216,16 +217,16 @@ impl DocParser {
216217 }
217218 }
218219 Some ( name) => {
219- cx. emit_lint (
220+ cx. emit_dyn_lint (
220221 rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
221- AttributeLintKind :: DocTestUnknown { name } ,
222+ move |dcx , level| DocTestUnknown { name } . into_diag ( dcx , level ) ,
222223 path. span ( ) ,
223224 ) ;
224225 }
225226 None => {
226- cx. emit_lint (
227+ cx. emit_dyn_lint (
227228 rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
228- AttributeLintKind :: DocTestLiteral ,
229+ |dcx , level| DocTestLiteral . into_diag ( dcx , level ) ,
229230 path. span ( ) ,
230231 ) ;
231232 }
@@ -587,9 +588,9 @@ impl DocParser {
587588 Some ( sym:: auto_cfg) => self . parse_auto_cfg ( cx, path, args) ,
588589 Some ( sym:: test) => {
589590 let Some ( list) = args. list ( ) else {
590- cx. emit_lint (
591+ cx. emit_dyn_lint (
591592 rustc_session:: lint:: builtin:: INVALID_DOC_ATTRIBUTES ,
592- AttributeLintKind :: DocTestTakesList ,
593+ |dcx , level| DocTestTakesList . into_diag ( dcx , level ) ,
593594 args. span ( ) . unwrap_or ( path. span ( ) ) ,
594595 ) ;
595596 return ;
0 commit comments