@@ -139,6 +139,9 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
139139 & Attribute :: Parsed ( AttributeKind :: TypeConst ( attr_span) ) => {
140140 self . check_type_const ( hir_id, attr_span, target)
141141 }
142+ & Attribute :: Parsed ( AttributeKind :: Marker ( attr_span) ) => {
143+ self . check_marker ( hir_id, attr_span, span, target)
144+ }
142145 Attribute :: Parsed ( AttributeKind :: Confusables { first_span, .. } ) => {
143146 self . check_confusables ( * first_span, target) ;
144147 }
@@ -240,7 +243,6 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
240243 self . check_no_sanitize ( attr, span, target)
241244 }
242245 [ sym:: non_exhaustive, ..] => self . check_non_exhaustive ( hir_id, attr, span, target, item) ,
243- [ sym:: marker, ..] => self . check_marker ( hir_id, attr, span, target) ,
244246 [ sym:: thread_local, ..] => self . check_thread_local ( attr, span, target) ,
245247 [ sym:: doc, ..] => self . check_doc_attrs (
246248 attr,
@@ -794,21 +796,19 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
794796 }
795797
796798 /// Checks if the `#[marker]` attribute on an `item` is valid.
797- fn check_marker ( & self , hir_id : HirId , attr : & Attribute , span : Span , target : Target ) {
799+ fn check_marker ( & self , hir_id : HirId , attr_span : Span , span : Span , target : Target ) {
798800 match target {
799801 Target :: Trait => { }
800802 // FIXME(#80564): We permit struct fields, match arms and macro defs to have an
801803 // `#[marker]` attribute with just a lint, because we previously
802804 // erroneously allowed it and some crates used it accidentally, to be compatible
803805 // with crates depending on them, we can't throw an error here.
804806 Target :: Field | Target :: Arm | Target :: MacroDef => {
805- self . inline_attr_str_error_with_macro_def ( hir_id, attr . span ( ) , "marker" ) ;
807+ self . inline_attr_str_error_with_macro_def ( hir_id, attr_span , "marker" ) ;
806808 }
807809 _ => {
808- self . dcx ( ) . emit_err ( errors:: AttrShouldBeAppliedToTrait {
809- attr_span : attr. span ( ) ,
810- defn_span : span,
811- } ) ;
810+ self . dcx ( )
811+ . emit_err ( errors:: AttrShouldBeAppliedToTrait { attr_span, defn_span : span } ) ;
812812 }
813813 }
814814 }
0 commit comments