@@ -109,8 +109,8 @@ impl ConfigStoreBuilder {
109
109
let cache = RulesCache :: new ( config. plugins ) ;
110
110
let mut builder = Self { rules, config, overrides, cache } ;
111
111
112
- if ! categories. is_empty ( ) {
113
- builder = builder. with_filters ( categories . filters ( ) ) ;
112
+ for filter in categories. filters ( ) {
113
+ builder = builder. with_filter ( & filter ) ;
114
114
}
115
115
116
116
{
@@ -227,20 +227,20 @@ impl ConfigStoreBuilder {
227
227
self
228
228
}
229
229
230
- pub fn with_filters < I : IntoIterator < Item = LintFilter > > ( mut self , filters : I ) -> Self {
230
+ pub fn with_filters < ' a , I : IntoIterator < Item = & ' a LintFilter > > ( mut self , filters : I ) -> Self {
231
231
for filter in filters {
232
232
self = self . with_filter ( filter) ;
233
233
}
234
234
self
235
235
}
236
236
237
- pub fn with_filter ( mut self , filter : LintFilter ) -> Self {
237
+ pub fn with_filter ( mut self , filter : & LintFilter ) -> Self {
238
238
let ( severity, filter) = filter. into ( ) ;
239
239
240
240
match severity {
241
241
AllowWarnDeny :: Deny | AllowWarnDeny :: Warn => match filter {
242
242
LintFilterKind :: Category ( category) => {
243
- self . upsert_where ( severity, |r| r. category ( ) == category) ;
243
+ self . upsert_where ( severity, |r| r. category ( ) == * category) ;
244
244
}
245
245
LintFilterKind :: Rule ( _, name) => self . upsert_where ( severity, |r| r. name ( ) == name) ,
246
246
LintFilterKind :: Generic ( name_or_category) => {
@@ -253,7 +253,7 @@ impl ConfigStoreBuilder {
253
253
} ,
254
254
AllowWarnDeny :: Allow => match filter {
255
255
LintFilterKind :: Category ( category) => {
256
- self . rules . retain ( |rule| rule. category ( ) != category) ;
256
+ self . rules . retain ( |rule| rule. category ( ) != * category) ;
257
257
}
258
258
LintFilterKind :: Rule ( _, name) => {
259
259
self . rules . retain ( |rule| rule. name ( ) != name) ;
@@ -537,7 +537,7 @@ mod test {
537
537
let builder = ConfigStoreBuilder :: default ( ) ;
538
538
let initial_rule_count = builder. rules . len ( ) ;
539
539
540
- let builder = builder. with_filters ( [ LintFilter :: deny ( RuleCategory :: Correctness ) ] ) ;
540
+ let builder = builder. with_filter ( & LintFilter :: deny ( RuleCategory :: Correctness ) ) ;
541
541
let rule_count_after_deny = builder. rules . len ( ) ;
542
542
543
543
// By default, all correctness rules are set to warn. the above filter should only
@@ -566,8 +566,7 @@ mod test {
566
566
let initial_rule_count = builder. rules . len ( ) ;
567
567
568
568
let builder =
569
- builder
570
- . with_filters ( [ LintFilter :: new ( AllowWarnDeny :: Deny , filter_string) . unwrap ( ) ] ) ;
569
+ builder. with_filter ( & LintFilter :: new ( AllowWarnDeny :: Deny , filter_string) . unwrap ( ) ) ;
571
570
let rule_count_after_deny = builder. rules . len ( ) ;
572
571
assert_eq ! (
573
572
initial_rule_count, rule_count_after_deny,
@@ -591,7 +590,7 @@ mod test {
591
590
let builder = ConfigStoreBuilder :: default ( ) ;
592
591
// sanity check: not already turned on
593
592
assert ! ( !builder. rules. iter( ) . any( |r| r. name( ) == "no-console" ) ) ;
594
- let builder = builder. with_filter ( filter) ;
593
+ let builder = builder. with_filter ( & filter) ;
595
594
let no_console = builder
596
595
. rules
597
596
. iter ( )
@@ -604,14 +603,11 @@ mod test {
604
603
605
604
#[ test]
606
605
fn test_filter_allow_all_then_warn ( ) {
607
- let builder = ConfigStoreBuilder :: default ( ) . with_filters ( [ LintFilter :: new (
608
- AllowWarnDeny :: Allow ,
609
- "all" ,
610
- )
611
- . unwrap ( ) ] ) ;
606
+ let builder = ConfigStoreBuilder :: default ( )
607
+ . with_filter ( & LintFilter :: new ( AllowWarnDeny :: Allow , "all" ) . unwrap ( ) ) ;
612
608
assert ! ( builder. rules. is_empty( ) , "Allowing all rules should empty out the rules list" ) ;
613
609
614
- let builder = builder. with_filters ( [ LintFilter :: warn ( RuleCategory :: Correctness ) ] ) ;
610
+ let builder = builder. with_filter ( & LintFilter :: warn ( RuleCategory :: Correctness ) ) ;
615
611
assert ! (
616
612
!builder. rules. is_empty( ) ,
617
613
"warning on categories after allowing all rules should populate the rules set"
0 commit comments