@@ -8,7 +8,7 @@ use syn::{
8
8
Ident , ItemFn , LitStr , Pat , Path , Stmt , Token ,
9
9
} ;
10
10
11
- use crate :: rule_code_prefix:: { get_prefix_ident, if_all_same } ;
11
+ use crate :: rule_code_prefix:: { get_prefix_ident, intersection_all } ;
12
12
13
13
/// A rule entry in the big match statement such a
14
14
/// `(Pycodestyle, "E112") => (RuleGroup::Nursery, rules::pycodestyle::rules::logical_lines::NoIndentedBlock),`
@@ -142,12 +142,13 @@ pub(crate) fn map_codes(func: &ItemFn) -> syn::Result<TokenStream> {
142
142
143
143
for ( prefix, rules) in & rules_by_prefix {
144
144
let prefix_ident = get_prefix_ident ( prefix) ;
145
- let attr = match if_all_same ( rules. iter ( ) . map ( |( .., attrs) | attrs) ) {
146
- Some ( attr) => quote ! ( #( #attr) * ) ,
147
- None => quote ! ( ) ,
145
+ let attrs = intersection_all ( rules. iter ( ) . map ( |( .., attrs) | attrs. as_slice ( ) ) ) ;
146
+ let attrs = match attrs. as_slice ( ) {
147
+ [ ] => quote ! ( ) ,
148
+ [ ..] => quote ! ( #( #attrs) * ) ,
148
149
} ;
149
150
all_codes. push ( quote ! {
150
- #attr Self :: #linter( #linter:: #prefix_ident)
151
+ #attrs Self :: #linter( #linter:: #prefix_ident)
151
152
} ) ;
152
153
}
153
154
@@ -159,12 +160,13 @@ pub(crate) fn map_codes(func: &ItemFn) -> syn::Result<TokenStream> {
159
160
quote ! ( #( #attrs) * Rule :: #rule_name)
160
161
} ) ;
161
162
let prefix_ident = get_prefix_ident ( & prefix) ;
162
- let attr = match if_all_same ( rules. iter ( ) . map ( |( .., attrs) | attrs) ) {
163
- Some ( attr) => quote ! ( #( #attr) * ) ,
164
- None => quote ! ( ) ,
163
+ let attrs = intersection_all ( rules. iter ( ) . map ( |( .., attrs) | attrs. as_slice ( ) ) ) ;
164
+ let attrs = match attrs. as_slice ( ) {
165
+ [ ] => quote ! ( ) ,
166
+ [ ..] => quote ! ( #( #attrs) * ) ,
165
167
} ;
166
168
prefix_into_iter_match_arms. extend ( quote ! {
167
- #attr #linter:: #prefix_ident => vec![ #( #rule_paths, ) * ] . into_iter( ) ,
169
+ #attrs #linter:: #prefix_ident => vec![ #( #rule_paths, ) * ] . into_iter( ) ,
168
170
} ) ;
169
171
}
170
172
0 commit comments