diff --git a/crates/turborepo-filewatch/src/lib.rs b/crates/turborepo-filewatch/src/lib.rs index 7ef45bfe65593..4b52b80fcde00 100644 --- a/crates/turborepo-filewatch/src/lib.rs +++ b/crates/turborepo-filewatch/src/lib.rs @@ -22,6 +22,7 @@ #![deny(clippy::all)] #![allow(clippy::mutable_key_type)] +#![allow(clippy::result_large_err)] #![feature(assert_matches)] use std::{ diff --git a/crates/turborepo-globwatch/src/lib.rs b/crates/turborepo-globwatch/src/lib.rs index 4d29d234e1b47..71ccf239d12ce 100644 --- a/crates/turborepo-globwatch/src/lib.rs +++ b/crates/turborepo-globwatch/src/lib.rs @@ -18,7 +18,6 @@ unused_must_use, unsafe_code )] -#![feature(extract_if)] use std::{ collections::HashMap, diff --git a/crates/turborepo-lib/src/lib.rs b/crates/turborepo-lib/src/lib.rs index b9e4b46c20fc8..d5e5f1b882c62 100644 --- a/crates/turborepo-lib/src/lib.rs +++ b/crates/turborepo-lib/src/lib.rs @@ -1,7 +1,6 @@ #![feature(assert_matches)] #![feature(box_patterns)] #![feature(error_generic_member_access)] -#![feature(hash_extract_if)] #![feature(once_cell_try)] #![feature(try_blocks)] #![feature(impl_trait_in_assoc_type)] @@ -10,6 +9,7 @@ #![allow(clippy::needless_pass_by_ref_mut)] // Code generated by tonic-build don't follow this lint #![allow(clippy::needless_lifetimes)] +#![allow(clippy::result_large_err)] #![allow(dead_code)] mod child; diff --git a/crates/turborepo-lib/src/package_changes_watcher.rs b/crates/turborepo-lib/src/package_changes_watcher.rs index e9d38998f993d..9ae12381fbc19 100644 --- a/crates/turborepo-lib/src/package_changes_watcher.rs +++ b/crates/turborepo-lib/src/package_changes_watcher.rs @@ -74,7 +74,7 @@ impl PackageChangesWatcher { enum ChangedFiles { All, // Trie doesn't support PathBuf as a key on Windows, so we need to use `String` - Some(Trie), + Some(Box>), } impl ChangedFiles { @@ -88,7 +88,7 @@ impl ChangedFiles { impl Default for ChangedFiles { fn default() -> Self { - ChangedFiles::Some(Trie::new()) + ChangedFiles::Some(Box::new(Trie::new())) } } diff --git a/crates/turborepo-process/src/child.rs b/crates/turborepo-process/src/child.rs index 4e8448c456178..dcb0b484ab104 100644 --- a/crates/turborepo-process/src/child.rs +++ b/crates/turborepo-process/src/child.rs @@ -138,7 +138,7 @@ impl ChildHandle { .openpty(size) .map_err(|err| match err.downcast() { Ok(err) => err, - Err(err) => io::Error::new(io::ErrorKind::Other, err), + Err(err) => io::Error::other(err), })?; let controller = pair.master; @@ -168,7 +168,7 @@ impl ChildHandle { .spawn_command(command) .map_err(|err| match err.downcast() { Ok(err) => err, - Err(err) => io::Error::new(io::ErrorKind::Other, err), + Err(err) => io::Error::other(err), })?; let pid = child.process_id(); diff --git a/crates/turborepo-repository/src/lib.rs b/crates/turborepo-repository/src/lib.rs index 8893ee9b843a2..de6b660438d60 100644 --- a/crates/turborepo-repository/src/lib.rs +++ b/crates/turborepo-repository/src/lib.rs @@ -1,5 +1,6 @@ #![feature(assert_matches)] #![feature(error_generic_member_access)] +#![allow(clippy::result_large_err)] pub mod change_mapper; pub mod discovery; diff --git a/crates/turborepo-scm/src/lib.rs b/crates/turborepo-scm/src/lib.rs index c06aec27bbddc..a9abf59a2b8b5 100644 --- a/crates/turborepo-scm/src/lib.rs +++ b/crates/turborepo-scm/src/lib.rs @@ -2,6 +2,7 @@ #![feature(io_error_more)] #![feature(assert_matches)] #![deny(clippy::all)] +#![allow(clippy::result_large_err)] //! Turborepo's library for interacting with source control management (SCM). //! Currently we only support git. We use SCM for finding changed files, diff --git a/crates/turborepo-ui/src/color_selector.rs b/crates/turborepo-ui/src/color_selector.rs index b2db3c6e00c95..f629af7d01ae6 100644 --- a/crates/turborepo-ui/src/color_selector.rs +++ b/crates/turborepo-ui/src/color_selector.rs @@ -33,6 +33,7 @@ struct ColorSelectorInner { } impl ColorSelector { + #[allow(clippy::let_and_return)] pub fn color_for_key(&self, key: &str) -> &'static Style { if let Some(style) = self.inner.read().expect("lock poisoned").color(key) { return style; diff --git a/crates/turborepo-ui/src/sender.rs b/crates/turborepo-ui/src/sender.rs index 0fd6f84690bb6..128954adb6c90 100644 --- a/crates/turborepo-ui/src/sender.rs +++ b/crates/turborepo-ui/src/sender.rs @@ -146,7 +146,7 @@ impl std::io::Write for TaskSender { self.handle .output(task, buf.to_vec()) - .map_err(|_| std::io::Error::new(std::io::ErrorKind::Other, "receiver dropped"))?; + .map_err(|_| std::io::Error::other("receiver dropped"))?; Ok(buf.len()) } diff --git a/crates/turborepo-vt100/src/grid.rs b/crates/turborepo-vt100/src/grid.rs index f8d21cacf3bbd..44f8dddcd0804 100644 --- a/crates/turborepo-vt100/src/grid.rs +++ b/crates/turborepo-vt100/src/grid.rs @@ -820,11 +820,7 @@ impl Grid { let in_scroll_region = self.in_scroll_region(); // need to account for clamping by both row_clamp_top and by // saturating_sub - let extra_lines = if count > self.pos.row { - count - self.pos.row - } else { - 0 - }; + let extra_lines = count.saturating_sub(self.pos.row); self.pos.row = self.pos.row.saturating_sub(count); let lines = self.row_clamp_top(in_scroll_region); self.scroll_down(lines + extra_lines); diff --git a/packages/turbo-repository/rust/src/lib.rs b/packages/turbo-repository/rust/src/lib.rs index 2fc0cd789e1e8..5df1564ae1e39 100644 --- a/packages/turbo-repository/rust/src/lib.rs +++ b/packages/turbo-repository/rust/src/lib.rs @@ -241,10 +241,11 @@ impl Workspace { .collect(); // Create a ChangeMapper with no ignore patterns - let change_detector = base - .is_some() - .then(|| Either::Left(DefaultPackageChangeMapperWithLockfile::new(&self.graph))) - .unwrap_or_else(|| Either::Right(DefaultPackageChangeMapper::new(&self.graph))); + let change_detector = if base.is_some() { + Either::Left(DefaultPackageChangeMapperWithLockfile::new(&self.graph)) + } else { + Either::Right(DefaultPackageChangeMapper::new(&self.graph)) + }; let mapper = ChangeMapper::new(&self.graph, vec![], change_detector); let lockfile_contents = if let Some(base) = base { diff --git a/packages/turbo-repository/scripts/build.sh b/packages/turbo-repository/scripts/build.sh index a9a5100bd12ec..cb3cbd1b5ac26 100755 --- a/packages/turbo-repository/scripts/build.sh +++ b/packages/turbo-repository/scripts/build.sh @@ -13,7 +13,7 @@ script_provided_flags="\ for flag in $user_provided_flags; do if [[ $flag == --target=* ]]; then target=${flag#*=} - rustup toolchain install nightly-2025-02-14 --target "$target" + rustup toolchain install nightly-2025-03-28 --target "$target" # For we need to cross-compile some targets with Zig # Fortunately, napi comes with a `--zig` flag diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 49063119abab0..722c25ab9bfc6 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] # Needs to be copied to `packages/turbo-repository/scripts/build.sh` -channel = "nightly-2025-02-14" +channel = "nightly-2025-03-28" components = ["rustfmt", "clippy"] profile = "minimal"