@@ -4,12 +4,12 @@ use std::error::Error;
44use std:: fmt;
55use std:: fmt:: Formatter ;
66
7- use globset:: { Glob , GlobSet , GlobSetBuilder } ;
7+ use globset:: { GlobSet , GlobSetBuilder } ;
88
99use ruff_cache:: { CacheKey , CacheKeyHasher } ;
1010use ruff_macros:: CacheKey ;
1111
12- use crate :: display_settings;
12+ use crate :: { display_settings, settings :: types :: try_glob_new } ;
1313
1414#[ derive( Debug , Clone , CacheKey ) ]
1515pub struct Settings {
@@ -46,7 +46,7 @@ impl fmt::Display for Settings {
4646/// Error returned by the [`TryFrom`] implementation of [`Settings`].
4747#[ derive( Debug ) ]
4848pub enum SettingsError {
49- InvalidIgnoreName ( globset :: Error ) ,
49+ InvalidIgnoreName ( anyhow :: Error ) ,
5050}
5151
5252impl fmt:: Display for SettingsError {
@@ -62,7 +62,7 @@ impl fmt::Display for SettingsError {
6262impl Error for SettingsError {
6363 fn source ( & self ) -> Option < & ( dyn Error + ' static ) > {
6464 match self {
65- SettingsError :: InvalidIgnoreName ( err) => Some ( err) ,
65+ SettingsError :: InvalidIgnoreName ( err) => Some ( err. as_ref ( ) ) ,
6666 }
6767 }
6868}
@@ -113,25 +113,27 @@ impl IgnoreNames {
113113 // defaults
114114 if let Some ( names) = ignore_names {
115115 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 ) ?) ;
117117 literals. push ( name) ;
118118 }
119119 } else {
120120 for name in DEFAULTS {
121- builder. add ( Glob :: new ( name) . unwrap ( ) ) ;
121+ builder. add ( try_glob_new ( name) . unwrap ( ) ) ;
122122 literals. push ( ( * name) . to_string ( ) ) ;
123123 }
124124 }
125125
126126 // Add the ignored names from the `extend-ignore-names` option.
127127 if let Some ( names) = extend_ignore_names {
128128 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 ) ?) ;
130130 literals. push ( name) ;
131131 }
132132 }
133133
134- let matcher = builder. build ( ) . map_err ( SettingsError :: InvalidIgnoreName ) ?;
134+ let matcher = builder
135+ . build ( )
136+ . map_err ( |e| SettingsError :: InvalidIgnoreName ( e. into ( ) ) ) ?;
135137
136138 Ok ( IgnoreNames :: UserProvided { matcher, literals } )
137139 }
@@ -166,11 +168,13 @@ impl IgnoreNames {
166168 let mut literals = Vec :: new ( ) ;
167169
168170 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 ) ?) ;
170172 literals. push ( name) ;
171173 }
172174
173- let matcher = builder. build ( ) . map_err ( SettingsError :: InvalidIgnoreName ) ?;
175+ let matcher = builder
176+ . build ( )
177+ . map_err ( |e| SettingsError :: InvalidIgnoreName ( e. into ( ) ) ) ?;
174178
175179 Ok ( IgnoreNames :: UserProvided { matcher, literals } )
176180 }
0 commit comments