@@ -4,12 +4,12 @@ use std::error::Error;
4
4
use std:: fmt;
5
5
use std:: fmt:: Formatter ;
6
6
7
- use globset:: { Glob , GlobSet , GlobSetBuilder } ;
7
+ use globset:: { GlobSet , GlobSetBuilder } ;
8
8
9
9
use ruff_cache:: { CacheKey , CacheKeyHasher } ;
10
10
use ruff_macros:: CacheKey ;
11
11
12
- use crate :: display_settings;
12
+ use crate :: { display_settings, settings :: types :: try_glob_new } ;
13
13
14
14
#[ derive( Debug , Clone , CacheKey ) ]
15
15
pub struct Settings {
@@ -46,7 +46,7 @@ impl fmt::Display for Settings {
46
46
/// Error returned by the [`TryFrom`] implementation of [`Settings`].
47
47
#[ derive( Debug ) ]
48
48
pub enum SettingsError {
49
- InvalidIgnoreName ( globset :: Error ) ,
49
+ InvalidIgnoreName ( anyhow :: Error ) ,
50
50
}
51
51
52
52
impl fmt:: Display for SettingsError {
@@ -62,7 +62,7 @@ impl fmt::Display for SettingsError {
62
62
impl Error for SettingsError {
63
63
fn source ( & self ) -> Option < & ( dyn Error + ' static ) > {
64
64
match self {
65
- SettingsError :: InvalidIgnoreName ( err) => Some ( err) ,
65
+ SettingsError :: InvalidIgnoreName ( err) => Some ( err. as_ref ( ) ) ,
66
66
}
67
67
}
68
68
}
@@ -113,25 +113,27 @@ impl IgnoreNames {
113
113
// defaults
114
114
if let Some ( names) = ignore_names {
115
115
for name in names {
116
- builder. add ( Glob :: new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
116
+ builder. add ( try_glob_new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
117
117
literals. push ( name) ;
118
118
}
119
119
} else {
120
120
for name in DEFAULTS {
121
- builder. add ( Glob :: new ( name) . unwrap ( ) ) ;
121
+ builder. add ( try_glob_new ( name) . unwrap ( ) ) ;
122
122
literals. push ( ( * name) . to_string ( ) ) ;
123
123
}
124
124
}
125
125
126
126
// Add the ignored names from the `extend-ignore-names` option.
127
127
if let Some ( names) = extend_ignore_names {
128
128
for name in names {
129
- builder. add ( Glob :: new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
129
+ builder. add ( try_glob_new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
130
130
literals. push ( name) ;
131
131
}
132
132
}
133
133
134
- let matcher = builder. build ( ) . map_err ( SettingsError :: InvalidIgnoreName ) ?;
134
+ let matcher = builder
135
+ . build ( )
136
+ . map_err ( |e| SettingsError :: InvalidIgnoreName ( e. into ( ) ) ) ?;
135
137
136
138
Ok ( IgnoreNames :: UserProvided { matcher, literals } )
137
139
}
@@ -166,11 +168,13 @@ impl IgnoreNames {
166
168
let mut literals = Vec :: new ( ) ;
167
169
168
170
for name in patterns {
169
- builder. add ( Glob :: new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
171
+ builder. add ( try_glob_new ( & name) . map_err ( SettingsError :: InvalidIgnoreName ) ?) ;
170
172
literals. push ( name) ;
171
173
}
172
174
173
- let matcher = builder. build ( ) . map_err ( SettingsError :: InvalidIgnoreName ) ?;
175
+ let matcher = builder
176
+ . build ( )
177
+ . map_err ( |e| SettingsError :: InvalidIgnoreName ( e. into ( ) ) ) ?;
174
178
175
179
Ok ( IgnoreNames :: UserProvided { matcher, literals } )
176
180
}
0 commit comments