diff --git a/crates/engine/src/cmd/package.rs b/crates/engine/src/cmd/package.rs index a874bc88f..91579a1b9 100644 --- a/crates/engine/src/cmd/package.rs +++ b/crates/engine/src/cmd/package.rs @@ -179,7 +179,7 @@ impl<'a> Collector<'a> { /// Warns when a file that placed `.ai` file `source` links (`name`) was copied as `copy`: the /// copy of `source` finds it only by its name, beside it. fn renamed(&mut self, lines: &mut Vec, source: &str, path: &str, name: &str, copy: &str) { - if Path::new(copy).file_name().and_then(|n| n.to_str()) != Some(name) { + if Path::new(copy).file_name().and_then(std::ffi::OsStr::to_str) != Some(name) { let message = format!( "{path}: copied as {copy}; the copy of {source} looks for it as {name} and shows the file of that name, if any, else its preview" ); diff --git a/crates/engine/src/cmd/recovery.rs b/crates/engine/src/cmd/recovery.rs index 177e0ee45..28f7bf592 100644 --- a/crates/engine/src/cmd/recovery.rs +++ b/crates/engine/src/cmd/recovery.rs @@ -603,7 +603,7 @@ struct Names { /// The name of the entry holding `bytes`: from their content (128 bits of hash and the length), so /// identical images share one entry and one written before isn't written again. fn blob_name(bytes: &Arc>) -> String { - let mut guard = NAMES.lock().unwrap_or_else(|e| e.into_inner()); + let mut guard = NAMES.lock().unwrap_or_else(std::sync::PoisonError::into_inner); let Names { by_address, live_after_sweep } = &mut *guard; let names = by_address.get_or_insert_with(Default::default); let address = Arc::as_ptr(bytes) as usize; diff --git a/crates/engine/src/cmd/symbollib.rs b/crates/engine/src/cmd/symbollib.rs index 5b361df6a..557eb9ba6 100644 --- a/crates/engine/src/cmd/symbollib.rs +++ b/crates/engine/src/cmd/symbollib.rs @@ -127,7 +127,7 @@ impl SymbolLibrary { } impl LibraryFile for SymbolLibrary { - const EXTS: &'static [&'static str] = &[SYMBOLS_EXT]; + const EXTS: &[&str] = &[SYMBOLS_EXT]; fn read(bytes: &[u8], stem: &str) -> std::result::Result { let doc = vectorcraft_format::load(bytes).map_err(|e| e.to_string())?; SymbolLibrary::from_document(&doc, &[], stem.to_string()) diff --git a/crates/engine/src/inspect.rs b/crates/engine/src/inspect.rs index 53db233aa..45dcaa7a4 100644 --- a/crates/engine/src/inspect.rs +++ b/crates/engine/src/inspect.rs @@ -347,7 +347,7 @@ impl FindFilter { [self.name.as_ref(), self.kind.as_ref(), self.text.as_ref()].iter().all(|f| f.is_none()) && self.within.is_none() && self.intersects.is_none() - && self.ranges().iter().all(|r| r.is_empty()) + && self.ranges().iter().all(FindRange::is_empty) && self.anchors.is_empty() } diff --git a/crates/engine/tests/it/affinity_local.rs b/crates/engine/tests/it/affinity_local.rs index b9854c6ba..c0ae237e9 100644 --- a/crates/engine/tests/it/affinity_local.rs +++ b/crates/engine/tests/it/affinity_local.rs @@ -14,7 +14,7 @@ fn files(dir: &Path, out: &mut Vec) { files(&p, out); } else if p .extension() - .and_then(|x| x.to_str()) + .and_then(std::ffi::OsStr::to_str) .is_some_and(|x| ["af", "afdesign", "afpub", "afphoto"].contains(&x.to_ascii_lowercase().as_str())) { out.push(p); diff --git a/crates/plugins/src/effect.rs b/crates/plugins/src/effect.rs index e55e0e0ba..29d5483d3 100644 --- a/crates/plugins/src/effect.rs +++ b/crates/plugins/src/effect.rs @@ -155,7 +155,7 @@ pub fn apply(id: &str, params: &Value, path: &PathData, bounds: Rect, rule: Fill path: path.clone(), }; let h = key.hash64(); - if let Some((k, out)) = CACHE.lock().unwrap_or_else(|e| e.into_inner()).as_ref().and_then(|c| c.entries.get(&h)) + if let Some((k, out)) = CACHE.lock().unwrap_or_else(std::sync::PoisonError::into_inner).as_ref().and_then(|c| c.entries.get(&h)) && *k == key { return out.clone(); diff --git a/crates/text/src/fontdb.rs b/crates/text/src/fontdb.rs index f2f9aecb9..33b645d53 100644 --- a/crates/text/src/fontdb.rs +++ b/crates/text/src/fontdb.rs @@ -1973,7 +1973,7 @@ impl FontDb { } } } - let mut faces = self.faces.write().unwrap_or_else(|e| e.into_inner()); + let mut faces = self.faces.write().unwrap_or_else(std::sync::PoisonError::into_inner); let before = faces.len(); for f in made { // Another thread may have added the same face meanwhile. @@ -2183,8 +2183,9 @@ impl FontDb { let face = |a: &Alias| a.paired.is_none() && a.style.is_some(); let ps = self.read_faces().iter().flat_map(|f| Alias::of(&f.family, &f.style, &f.keys)).find(|(k, a)| *k == joined && face(a)).map(|(_, a)| a); - let ps = - ps.or_else(|| self.aliases.read().unwrap_or_else(|e| e.into_inner()).get(&joined).and_then(|v| v.iter().find(|a| face(a)).cloned())); + let ps = ps.or_else(|| { + self.aliases.read().unwrap_or_else(std::sync::PoisonError::into_inner).get(&joined).and_then(|v| v.iter().find(|a| face(a)).cloned()) + }); if let Some(a) = ps { return (a.family, a.style.unwrap_or_else(|| style.to_string())); } @@ -2218,7 +2219,7 @@ impl FontDb { None => scanned(&self.read_catalog()).unwrap_or_default(), Some(traits) if traits.variable => traits, Some(traits) => { - let variable = scanned(&self.catalog.read().unwrap_or_else(|e| e.into_inner())).is_some_and(|t| t.variable); + let variable = scanned(&self.catalog.read().unwrap_or_else(std::sync::PoisonError::into_inner)).is_some_and(|t| t.variable); FontTraits { variable, ..traits } } } @@ -2625,11 +2626,11 @@ impl FontDb { return None; } let key = (face.id, gid); - if let Some(i) = self.images.lock().unwrap_or_else(|e| e.into_inner()).kept.get(&key) { + if let Some(i) = self.images.lock().unwrap_or_else(std::sync::PoisonError::into_inner).kept.get(&key) { return i.clone(); } let image = face.skrifa().and_then(|f| crate::bitmap::glyph_image(&f, face.upem, gid)).map(Arc::new); - self.images.lock().unwrap_or_else(|e| e.into_inner()).keep(key, image.clone()); + self.images.lock().unwrap_or_else(std::sync::PoisonError::into_inner).keep(key, image.clone()); image } @@ -2656,7 +2657,7 @@ impl FontDb { // stroke too. let coloured = Some((foreground.key(), stroke.filter(|_| svg).map(|c| c.key()))); { - let cache = self.colours.lock().unwrap_or_else(|e| e.into_inner()); + let cache = self.colours.lock().unwrap_or_else(std::sync::PoisonError::into_inner); if let Some(c) = [None, coloured].iter().find_map(|k| cache.kept.get(&(face.id, gid, *k))) { return c.clone(); } @@ -2668,7 +2669,7 @@ impl FontDb { crate::colr::colour_glyph(&f, face.location(), face.upem, gid, foreground) }; let key = (face.id, gid, if used { coloured } else { None }); - self.colours.lock().unwrap_or_else(|e| e.into_inner()).keep(key, content.clone()); + self.colours.lock().unwrap_or_else(std::sync::PoisonError::into_inner).keep(key, content.clone()); content } } diff --git a/crates/ui-egui/src/panels/symbols.rs b/crates/ui-egui/src/panels/symbols.rs index ba4a6b8d8..7a539ad97 100644 --- a/crates/ui-egui/src/panels/symbols.rs +++ b/crates/ui-egui/src/panels/symbols.rs @@ -261,12 +261,12 @@ impl LibSymbol { pub(crate) struct SymbolLibraries; impl LibraryKind for SymbolLibraries { - const KIND: &'static str = "symbols"; - const OPEN: &'static str = "window.symbolLibrary"; - const LIST: &'static str = "symbol.libraries"; - const LOAD: &'static str = "symbol.loadLibrary"; - const MENU: &'static str = "Symbol Libraries Menu"; - const ADD: &'static str = "Add to Symbols"; + const KIND: &str = "symbols"; + const OPEN: &str = "window.symbolLibrary"; + const LIST: &str = "symbol.libraries"; + const LOAD: &str = "symbol.loadLibrary"; + const MENU: &str = "Symbol Libraries Menu"; + const ADD: &str = "Add to Symbols"; /// Symbols need room to show their art. const VIEW: super::swatches::View = super::swatches::View::LargeThumb; type Lib = Arc>; diff --git a/crates/ui-egui/src/stylus.rs b/crates/ui-egui/src/stylus.rs index 998e627be..f45251b15 100644 --- a/crates/ui-egui/src/stylus.rs +++ b/crates/ui-egui/src/stylus.rs @@ -86,7 +86,7 @@ impl StylusFeed { } fn lock(&self) -> MutexGuard<'_, Pen> { - self.0.pen.lock().unwrap_or_else(|e| e.into_inner()) + self.0.pen.lock().unwrap_or_else(std::sync::PoisonError::into_inner) } /// A pen turned to its tip moved with `pressure`, or `None`: another pointer moved