diff --git a/Dockerfile-collab b/Dockerfile-collab index 5250f52102..fa10876de5 100644 --- a/Dockerfile-collab +++ b/Dockerfile-collab @@ -1,6 +1,6 @@ # syntax = docker/dockerfile:1.2 -FROM rust:1.97-bookworm as builder +FROM rust:1.98.1-bookworm AS builder WORKDIR app COPY . . @@ -32,7 +32,7 @@ RUN --mount=type=cache,target=./target \ cp /app/target/release/collab /app/collab # Copy collab server binary to the runtime image -FROM debian:bookworm-slim as runtime +FROM debian:bookworm-slim AS runtime RUN apt-get update; \ apt-get install -y --no-install-recommends libcurl4-openssl-dev ca-certificates \ linux-perf binutils diff --git a/crates/collab/src/main.rs b/crates/collab/src/main.rs index 9265f682a1..0ebba9964b 100644 --- a/crates/collab/src/main.rs +++ b/crates/collab/src/main.rs @@ -183,6 +183,7 @@ async fn main() -> Result<()> { Ok(()) } +#[expect(clippy::result_large_err)] async fn setup_app_database(config: &Config) -> Result<()> { let db_options = db::ConnectOptions::new(config.database_url.clone()); let mut db = Database::new(db_options).await?; @@ -196,6 +197,7 @@ async fn handle_root(Extension(mode): Extension) -> String { format!("zed:{mode} v{VERSION} ({})", REVISION.unwrap_or("unknown")) } +#[expect(clippy::result_large_err)] async fn handle_liveness_probe(app_state: Option>>) -> Result { if let Some(state) = app_state { state.db.project_count_excluding_admins().await?; diff --git a/crates/edit_prediction/src/edit_prediction_tests.rs b/crates/edit_prediction/src/edit_prediction_tests.rs index c11542125e..0f35f75b3c 100644 --- a/crates/edit_prediction/src/edit_prediction_tests.rs +++ b/crates/edit_prediction/src/edit_prediction_tests.rs @@ -17,7 +17,7 @@ use cloud_llm_client::{ }; use db::AppDatabase; use edit_prediction_types::EditPredictionRequestTrigger; -use feature_flags::{FeatureFlag as _, FeatureFlagAppExt as _, FeatureFlagsSettings}; +use feature_flags::FeatureFlagsSettings; use futures::{ AsyncReadExt, FutureExt, StreamExt, channel::{mpsc, oneshot}, diff --git a/crates/eval_cli/Dockerfile b/crates/eval_cli/Dockerfile index 69a1646177..e9852fe319 100644 --- a/crates/eval_cli/Dockerfile +++ b/crates/eval_cli/Dockerfile @@ -7,14 +7,14 @@ # Or use the helper script: # crates/eval_cli/script/build-linux -FROM rust:1.97.1@sha256:3382bd20aa942806c533e9a73cd000474fb3ef173f71e684cc9b942675781769 AS builder +FROM rust:1.98.1@sha256:462a9af3c54fb4718850d3c602fc0e54452c20b1c12a4e4080fdb001d4b9acbf AS builder ARG CARGO_ZIGBUILD_VERSION=0.22.3 WORKDIR /app # Pre-install the toolchain specified in rust-toolchain.toml so it is cached. -RUN rustup toolchain install 1.97.1 --profile minimal \ +RUN rustup toolchain install 1.98.1 --profile minimal \ --component rustfmt --component clippy --component rust-analyzer --component rust-src \ --target wasm32-wasip2 --target wasm32-unknown-unknown --target x86_64-unknown-linux-musl --target x86_64-unknown-linux-gnu diff --git a/crates/git_ui/src/staged_diff.rs b/crates/git_ui/src/staged_diff.rs index 0aadd1c118..77bf62d100 100644 --- a/crates/git_ui/src/staged_diff.rs +++ b/crates/git_ui/src/staged_diff.rs @@ -687,7 +687,7 @@ impl Render for StagedDiffToolbar { mod tests { use crate::project_diff::{self, ProjectDiff}; use git::repository::RepoPath; - use gpui::{Action as _, TestAppContext}; + use gpui::TestAppContext; use language::Point; use project::{FakeFs, Fs as _}; use serde_json::json; diff --git a/crates/outline_panel/src/outline_panel.rs b/crates/outline_panel/src/outline_panel.rs index c2a42c123a..4e8b0beb46 100644 --- a/crates/outline_panel/src/outline_panel.rs +++ b/crates/outline_panel/src/outline_panel.rs @@ -6237,15 +6237,14 @@ outline: fn hints_lifetimes_named <==== selected" outline_panel.selected_entry(), cx, ), - format!( - r#"one/ + r#"one/ a.txt search: «aaa» aaa <==== selected search: aaa «aaa» two/ b.txt - search: a «aaa»"#, - ), + search: a «aaa»"# + .to_string(), ); }); @@ -6265,13 +6264,12 @@ two/ outline_panel.selected_entry(), cx, ), - format!( - r#"one/ + r#"one/ a.txt <==== selected two/ b.txt - search: a «aaa»"#, - ), + search: a «aaa»"# + .to_string(), ); }); @@ -6291,11 +6289,10 @@ two/ outline_panel.selected_entry(), cx, ), - format!( - r#"one/ + r#"one/ a.txt -two/ <==== selected"#, - ), +two/ <==== selected"# + .to_string(), ); }); @@ -6314,13 +6311,12 @@ two/ <==== selected"#, outline_panel.selected_entry(), cx, ), - format!( - r#"one/ + r#"one/ a.txt two/ <==== selected b.txt - search: a «aaa»"#, - ) + search: a «aaa»"# + .to_string() ); }); } @@ -6758,11 +6754,10 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} <==== selected + search: { "something": "«static»" } <==== selected src/ app/(site)/ (about)/jobs/[slug]/ @@ -6774,7 +6769,7 @@ outline: struct OutlineEntryExcerpt components/ ErrorBoundary.tsx search: «static»"# - ) + .to_string() ); }); @@ -6797,17 +6792,16 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} + search: { "something": "«static»" } src/ app/(site)/ <==== selected components/ ErrorBoundary.tsx search: «static»"# - ) + .to_string() ); }); @@ -6827,17 +6821,16 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} + search: { "something": "«static»" } src/ app/(site)/ components/ ErrorBoundary.tsx search: «static» <==== selected"# - ) + .to_string() ); }); @@ -6861,16 +6854,15 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} + search: { "something": "«static»" } src/ app/(site)/ components/ ErrorBoundary.tsx <==== selected"# - ) + .to_string() ); }); @@ -6894,17 +6886,16 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} + search: { "something": "«static»" } src/ app/(site)/ components/ ErrorBoundary.tsx <==== selected search: «static»"# - ) + .to_string() ); }); @@ -6923,7 +6914,7 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!(r#"frontend-project/"#) + r#"frontend-project/"#.to_string() ); }); @@ -6942,11 +6933,10 @@ outline: struct OutlineEntryExcerpt outline_panel.selected_entry(), cx, ), - format!( - r#"frontend-project/ + r#"frontend-project/ public/lottie/ syntax-tree.json - search: {{ "something": "«static»" }} + search: { "something": "«static»" } src/ app/(site)/ (about)/jobs/[slug]/ @@ -6958,7 +6948,7 @@ outline: struct OutlineEntryExcerpt components/ ErrorBoundary.tsx <==== selected search: «static»"# - ) + .to_string() ); }); } diff --git a/crates/rpc/src/proto_client.rs b/crates/rpc/src/proto_client.rs index 3fae12871d..0e1ee50bb5 100644 --- a/crates/rpc/src/proto_client.rs +++ b/crates/rpc/src/proto_client.rs @@ -361,7 +361,7 @@ impl AnyProtoClient { let request_id = LspRequestId(envelope.payload.lsp_request_id); let mut response_senders = self.0.request_ids.lock(); if let Some(tx) = response_senders.remove(&request_id) { - let responses = envelope.payload.responses.drain(..).collect::>(); + let responses = std::mem::take(&mut envelope.payload.responses); tx.send(Ok(Some(proto::TypedEnvelope { sender_id: envelope.sender_id, original_sender_id: envelope.original_sender_id, diff --git a/crates/vim/src/normal/search.rs b/crates/vim/src/normal/search.rs index 92baae1d37..57c872a266 100644 --- a/crates/vim/src/normal/search.rs +++ b/crates/vim/src/normal/search.rs @@ -265,7 +265,7 @@ impl Vim { let subscription = cx.subscribe_in(&search_bar, window, |vim, _, event, window, cx| { if let buffer_search::Event::Dismissed = event { if !vim.search.prior_selections.is_empty() { - let prior_selections: Vec<_> = vim.search.prior_selections.drain(..).collect(); + let prior_selections = std::mem::take(&mut vim.search.prior_selections); vim.update_editor(cx, |_, editor, cx| { editor.change_selections(Default::default(), window, cx, |s| { s.select_ranges(prior_selections); @@ -335,7 +335,7 @@ impl Vim { search_bar.select_match(direction, count, window, cx); search_bar.focus_editor(&Default::default(), window, cx); - let prior_selections: Vec<_> = self.search.prior_selections.drain(..).collect(); + let prior_selections = std::mem::take(&mut self.search.prior_selections); let prior_mode = self.search.prior_mode; let prior_operator = self.search.prior_operator.take(); diff --git a/flake.lock b/flake.lock index a0a2137505..d7d86c5b29 100644 --- a/flake.lock +++ b/flake.lock @@ -79,11 +79,11 @@ ] }, "locked": { - "lastModified": 1786247265, - "narHash": "sha256-cVTcTqAhzSNMOVddtBhFpuv+Vx6/SgrhgZWJiI61H24=", + "lastModified": 1788851328, + "narHash": "sha256-YOwlUD0Lt/3SulKhZ7z0Jmgbq/DWh8SjnGwUlFSw+YM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "6df7076ea0f5697e3242719a4c71211f00411cf5", + "rev": "6ae57a71bcb0bebc7a66cc2bd76942c4cf649167", "type": "github" }, "original": { diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 78f34e4d69..0d6cb31502 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.97.1" +channel = "1.98.1" profile = "minimal" components = [ "rustfmt", "clippy", "rust-analyzer", "rust-src" ] targets = [ diff --git a/tooling/perf/src/main.rs b/tooling/perf/src/main.rs index 243658e508..78a56286d8 100644 --- a/tooling/perf/src/main.rs +++ b/tooling/perf/src/main.rs @@ -349,13 +349,15 @@ fn get_tests(t_bin: &str) -> impl ExactSizeIterator { ); let out = test_list - .chunks_exact_mut(2) - .map(|pair| { + .as_chunks_mut::<2>() + .0 + .iter() + .map(|&[first, second]| { // Be resilient against changes to these constants. if consts::SUF_NORMAL < consts::SUF_MDATA { - (pair[0].to_owned(), pair[1].to_owned()) + (first.to_owned(), second.to_owned()) } else { - (pair[1].to_owned(), pair[0].to_owned()) + (second.to_owned(), first.to_owned()) } }) .collect::>();