@@ -69,55 +69,48 @@ impl CheckAttrVisitor<'tcx> {
6969 let mut is_valid = true ;
7070 let attrs = self . tcx . hir ( ) . attrs ( hir_id) ;
7171 for attr in attrs {
72- is_valid &= if self . tcx . sess . check_name ( attr, sym:: inline) {
73- self . check_inline ( hir_id, attr, span, target)
74- } else if self . tcx . sess . check_name ( attr, sym:: non_exhaustive) {
75- self . check_non_exhaustive ( hir_id, attr, span, target)
76- } else if self . tcx . sess . check_name ( attr, sym:: marker) {
77- self . check_marker ( hir_id, attr, span, target)
78- } else if self . tcx . sess . check_name ( attr, sym:: target_feature) {
79- self . check_target_feature ( hir_id, attr, span, target)
80- } else if self . tcx . sess . check_name ( attr, sym:: track_caller) {
81- self . check_track_caller ( hir_id, & attr. span , attrs, span, target)
82- } else if self . tcx . sess . check_name ( attr, sym:: doc) {
83- self . check_doc_attrs ( attr, hir_id, target)
84- } else if self . tcx . sess . check_name ( attr, sym:: no_link) {
85- self . check_no_link ( hir_id, & attr, span, target)
86- } else if self . tcx . sess . check_name ( attr, sym:: export_name) {
87- self . check_export_name ( hir_id, & attr, span, target)
88- } else if self . tcx . sess . check_name ( attr, sym:: rustc_args_required_const) {
89- self . check_rustc_args_required_const ( & attr, span, target, item)
90- } else if self . tcx . sess . check_name ( attr, sym:: rustc_layout_scalar_valid_range_start) {
91- self . check_rustc_layout_scalar_valid_range ( & attr, span, target)
92- } else if self . tcx . sess . check_name ( attr, sym:: rustc_layout_scalar_valid_range_end) {
93- self . check_rustc_layout_scalar_valid_range ( & attr, span, target)
94- } else if self . tcx . sess . check_name ( attr, sym:: allow_internal_unstable) {
95- self . check_allow_internal_unstable ( hir_id, & attr, span, target, & attrs)
96- } else if self . tcx . sess . check_name ( attr, sym:: rustc_allow_const_fn_unstable) {
97- self . check_rustc_allow_const_fn_unstable ( hir_id, & attr, span, target)
98- } else if self . tcx . sess . check_name ( attr, sym:: naked) {
99- self . check_naked ( hir_id, attr, span, target)
100- } else if self . tcx . sess . check_name ( attr, sym:: rustc_legacy_const_generics) {
101- self . check_rustc_legacy_const_generics ( & attr, span, target, item)
102- } else if self . tcx . sess . check_name ( attr, sym:: rustc_clean)
103- || self . tcx . sess . check_name ( attr, sym:: rustc_dirty)
104- || self . tcx . sess . check_name ( attr, sym:: rustc_if_this_changed)
105- || self . tcx . sess . check_name ( attr, sym:: rustc_then_this_would_need)
106- {
107- self . check_rustc_dirty_clean ( & attr)
108- } else {
109- // lint-only checks
110- if self . tcx . sess . check_name ( attr, sym:: cold) {
111- self . check_cold ( hir_id, attr, span, target) ;
112- } else if self . tcx . sess . check_name ( attr, sym:: link_name) {
113- self . check_link_name ( hir_id, attr, span, target) ;
114- } else if self . tcx . sess . check_name ( attr, sym:: link_section) {
115- self . check_link_section ( hir_id, attr, span, target) ;
116- } else if self . tcx . sess . check_name ( attr, sym:: no_mangle) {
117- self . check_no_mangle ( hir_id, attr, span, target) ;
72+ is_valid &= match attr. name_or_empty ( ) {
73+ sym:: inline => self . check_inline ( hir_id, attr, span, target) ,
74+ sym:: non_exhaustive => self . check_non_exhaustive ( hir_id, attr, span, target) ,
75+ sym:: marker => self . check_marker ( hir_id, attr, span, target) ,
76+ sym:: target_feature => self . check_target_feature ( hir_id, attr, span, target) ,
77+ sym:: track_caller => {
78+ self . check_track_caller ( hir_id, & attr. span , attrs, span, target)
11879 }
119- true
80+ sym:: doc => self . check_doc_attrs ( attr, hir_id, target) ,
81+ sym:: no_link => self . check_no_link ( hir_id, & attr, span, target) ,
82+ sym:: export_name => self . check_export_name ( hir_id, & attr, span, target) ,
83+ sym:: rustc_args_required_const => {
84+ self . check_rustc_args_required_const ( & attr, span, target, item)
85+ }
86+ sym:: rustc_layout_scalar_valid_range_start
87+ | sym:: rustc_layout_scalar_valid_range_end => {
88+ self . check_rustc_layout_scalar_valid_range ( & attr, span, target)
89+ }
90+ sym:: allow_internal_unstable => {
91+ self . check_allow_internal_unstable ( hir_id, & attr, span, target, & attrs)
92+ }
93+ sym:: rustc_allow_const_fn_unstable => {
94+ self . check_rustc_allow_const_fn_unstable ( hir_id, & attr, span, target)
95+ }
96+ sym:: naked => self . check_naked ( hir_id, attr, span, target) ,
97+ sym:: rustc_legacy_const_generics => {
98+ self . check_rustc_legacy_const_generics ( & attr, span, target, item)
99+ }
100+ sym:: rustc_clean
101+ | sym:: rustc_dirty
102+ | sym:: rustc_if_this_changed
103+ | sym:: rustc_then_this_would_need => self . check_rustc_dirty_clean ( & attr) ,
104+ _ => true ,
120105 } ;
106+ // lint-only checks
107+ match attr. name_or_empty ( ) {
108+ sym:: cold => self . check_cold ( hir_id, attr, span, target) ,
109+ sym:: link_name => self . check_link_name ( hir_id, attr, span, target) ,
110+ sym:: link_section => self . check_link_section ( hir_id, attr, span, target) ,
111+ sym:: no_mangle => self . check_no_mangle ( hir_id, attr, span, target) ,
112+ _ => { }
113+ }
121114 }
122115
123116 if !is_valid {
@@ -1116,7 +1109,7 @@ impl CheckAttrVisitor<'tcx> {
11161109 // ```
11171110 let hints: Vec < _ > = attrs
11181111 . iter ( )
1119- . filter ( |attr| self . tcx . sess . check_name ( attr , sym:: repr) )
1112+ . filter ( |attr| attr . has_name ( sym:: repr) )
11201113 . filter_map ( |attr| attr. meta_item_list ( ) )
11211114 . flatten ( )
11221115 . collect ( ) ;
@@ -1287,7 +1280,7 @@ impl CheckAttrVisitor<'tcx> {
12871280
12881281 fn check_used ( & self , attrs : & ' hir [ Attribute ] , target : Target ) {
12891282 for attr in attrs {
1290- if self . tcx . sess . check_name ( attr , sym:: used) && target != Target :: Static {
1283+ if attr . has_name ( sym:: used) && target != Target :: Static {
12911284 self . tcx
12921285 . sess
12931286 . span_err ( attr. span , "attribute must be applied to a `static` variable" ) ;
0 commit comments