Skip to content

Commit 35cd606

Browse files
committed
use try_glob_new everywhere Glob::new was used
1 parent 87878d8 commit 35cd606

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

crates/ruff_linter/src/rules/pep8_naming/settings.rs

+14-10
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ use std::error::Error;
44
use std::fmt;
55
use std::fmt::Formatter;
66

7-
use globset::{Glob, GlobSet, GlobSetBuilder};
7+
use globset::{GlobSet, GlobSetBuilder};
88

99
use ruff_cache::{CacheKey, CacheKeyHasher};
1010
use 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)]
1515
pub struct Settings {
@@ -46,7 +46,7 @@ impl fmt::Display for Settings {
4646
/// Error returned by the [`TryFrom`] implementation of [`Settings`].
4747
#[derive(Debug)]
4848
pub enum SettingsError {
49-
InvalidIgnoreName(globset::Error),
49+
InvalidIgnoreName(anyhow::Error),
5050
}
5151

5252
impl fmt::Display for SettingsError {
@@ -62,7 +62,7 @@ impl fmt::Display for SettingsError {
6262
impl 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
}

crates/ruff_linter/src/settings/types.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -169,15 +169,15 @@ impl FilePattern {
169169
pub fn add_to(self, builder: &mut GlobSetBuilder) -> Result<()> {
170170
match self {
171171
FilePattern::Builtin(pattern) => {
172-
builder.add(Glob::from_str(pattern)?);
172+
builder.add(try_glob_new(pattern)?);
173173
}
174174
FilePattern::User(pattern, absolute) => {
175175
// Add the absolute path.
176-
builder.add(Glob::new(&absolute.to_string_lossy())?);
176+
builder.add(try_glob_new(&absolute.to_string_lossy())?);
177177

178178
// Add basename path.
179179
if !pattern.contains(std::path::MAIN_SEPARATOR) {
180-
builder.add(Glob::new(&pattern)?);
180+
builder.add(try_glob_new(&pattern)?);
181181
}
182182
}
183183
}
@@ -653,7 +653,7 @@ where
653653
/// For example, the `cookiecutter` package generates paths like `{{cookiecutter.repo_name}}`, which
654654
/// look like nested glob alternate expressions like `{foo,bar}`. The nested version is not
655655
/// supported by `globset`, causing an error.
656-
fn try_glob_new(s: &str) -> Result<Glob> {
656+
pub fn try_glob_new(s: &str) -> Result<Glob> {
657657
match Glob::new(s) {
658658
Err(e) if *e.kind() == globset::ErrorKind::NestedAlternates => {
659659
log::warn!("Error parsing original glob: `{s:?}`, trying with escaped braces (`{{}}`)");

0 commit comments

Comments
 (0)