From 7aa672e563f37934d62c737d35b7b4ce9fc1436c Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Fri, 14 Jun 2024 17:10:57 +0530 Subject: [PATCH] chore: upgrade to rust 1.79 (#24207) --- .github/workflows/ci.generate.ts | 2 +- .github/workflows/ci.yml | 16 ++-- cli/cdp.rs | 153 +------------------------------ cli/factory.rs | 1 - cli/lsp/config.rs | 2 +- cli/lsp/path_to_regex.rs | 11 +-- cli/lsp/resolver.rs | 2 +- cli/lsp/testing/execution.rs | 2 +- cli/lsp/tsc.rs | 11 ++- cli/standalone/mod.rs | 5 +- cli/tools/bench/reporters.rs | 2 +- cli/tools/coverage/range_tree.rs | 2 +- cli/tools/registry/api.rs | 1 + cli/tools/registry/provenance.rs | 1 + cli/tools/test/channel.rs | 23 ++--- cli/tools/test/mod.rs | 4 +- cli/util/file_watcher.rs | 4 +- cli/worker.rs | 1 - ext/ffi/ir.rs | 5 +- ext/kv/sqlite.rs | 2 +- ext/node/ops/crypto/mod.rs | 1 + ext/node/ops/crypto/x509.rs | 4 +- ext/node/ops/os/cpus.rs | 2 +- ext/web/lib.rs | 1 - runtime/permissions/lib.rs | 16 ++-- rust-toolchain.toml | 2 +- tests/integration/lsp_tests.rs | 2 - 27 files changed, 58 insertions(+), 220 deletions(-) diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index bb2126ff36..4165251311 100755 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -59,7 +59,7 @@ const prCacheKeyPrefix = `${cacheVersion}-cargo-target-\${{ matrix.os }}-\${{ matrix.arch }}-\${{ matrix.profile }}-\${{ matrix.job }}-`; // Note that you may need to add more version to the `apt-get remove` line below if you change this -const llvmVersion = 17; +const llvmVersion = 18; const installPkgsCommand = `sudo apt-get install --no-install-recommends clang-${llvmVersion} lld-${llvmVersion} clang-tools-${llvmVersion} clang-format-${llvmVersion} clang-tidy-${llvmVersion}`; const sysRootStep = { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec98c4f3f5..0473fddd9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -261,14 +261,14 @@ jobs: sudo apt-get -qq remove 'clang-12*' 'clang-13*' 'clang-14*' 'clang-15*' 'clang-16*' 'llvm-12*' 'llvm-13*' 'llvm-14*' 'llvm-15*' 'llvm-16*' 'lld-12*' 'lld-13*' 'lld-14*' 'lld-15*' 'lld-16*' > /dev/null 2> /dev/null # Install clang-XXX, lld-XXX, and debootstrap. - echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main" | - sudo dd of=/etc/apt/sources.list.d/llvm-toolchain-jammy-17.list + echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main" | + sudo dd of=/etc/apt/sources.list.d/llvm-toolchain-jammy-18.list curl https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/llvm-snapshot.gpg sudo apt-get update # this was unreliable sometimes, so try again if it fails - sudo apt-get install --no-install-recommends clang-17 lld-17 clang-tools-17 clang-format-17 clang-tidy-17 || echo 'Failed. Trying again.' && sudo apt-get clean && sudo apt-get update && sudo apt-get install --no-install-recommends clang-17 lld-17 clang-tools-17 clang-format-17 clang-tidy-17 + sudo apt-get install --no-install-recommends clang-18 lld-18 clang-tools-18 clang-format-18 clang-tidy-18 || echo 'Failed. Trying again.' && sudo apt-get clean && sudo apt-get update && sudo apt-get install --no-install-recommends clang-18 lld-18 clang-tools-18 clang-format-18 clang-tidy-18 # Fix alternatives (yes '' | sudo update-alternatives --force --all) > /dev/null 2> /dev/null || true @@ -305,8 +305,8 @@ jobs: CARGO_PROFILE_RELEASE_LTO=false RUSTFLAGS<<__1 -C linker-plugin-lto=true - -C linker=clang-17 - -C link-arg=-fuse-ld=lld-17 + -C linker=clang-18 + -C link-arg=-fuse-ld=lld-18 -C link-arg=-ldl -C link-arg=-Wl,--allow-shlib-undefined -C link-arg=-Wl,--thinlto-cache-dir=$(pwd)/target/release/lto-cache @@ -316,8 +316,8 @@ jobs: __1 RUSTDOCFLAGS<<__1 -C linker-plugin-lto=true - -C linker=clang-17 - -C link-arg=-fuse-ld=lld-17 + -C linker=clang-18 + -C link-arg=-fuse-ld=lld-18 -C link-arg=-ldl -C link-arg=-Wl,--allow-shlib-undefined -C link-arg=-Wl,--thinlto-cache-dir=$(pwd)/target/release/lto-cache @@ -325,7 +325,7 @@ jobs: --cfg tokio_unstable $RUSTFLAGS __1 - CC=/usr/bin/clang-17 + CC=/usr/bin/clang-18 CFLAGS=-flto=thin $CFLAGS " > $GITHUB_ENV - name: Remove macOS cURL --ipv4 flag diff --git a/cli/cdp.rs b/cli/cdp.rs index c4fbd226e9..c5ff587dde 100644 --- a/cli/cdp.rs +++ b/cli/cdp.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. /// -use deno_core::serde_json; use deno_core::serde_json::Value; use serde::Deserialize; use serde::Deserializer; @@ -18,14 +17,6 @@ pub struct AwaitPromiseArgs { pub generate_preview: Option, } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct AwaitPromiseResponse { - pub result: RemoteObject, - pub exception_details: Option, -} - /// #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -72,14 +63,6 @@ pub struct CompileScriptArgs { pub execution_context_id: Option, } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CompileScriptResponse { - pub script_id: Option, - pub exception_details: Option, -} - /// #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -147,9 +130,6 @@ pub struct GetPropertiesArgs { #[serde(rename_all = "camelCase")] pub struct GetPropertiesResponse { pub result: Vec, - pub internal_properties: Option>, - pub private_properties: Option>, - pub exception_details: Option, } /// @@ -176,13 +156,6 @@ pub struct QueryObjectsArgs { pub object_group: Option, } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct QueryObjectsResponse { - pub objects: RemoteObject, -} - /// #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -221,14 +194,6 @@ pub struct RunScriptArgs { pub await_promise: Option, } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct RunScriptResponse { - pub result: RemoteObject, - pub exception_details: Option, -} - /// #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -244,15 +209,11 @@ pub struct SetAsyncCallStackDepthArgs { pub struct RemoteObject { #[serde(rename = "type")] pub kind: String, - pub subtype: Option, - pub class_name: Option, #[serde(default, deserialize_with = "deserialize_some")] pub value: Option, pub unserializable_value: Option, pub description: Option, pub object_id: Option, - pub preview: Option, - pub custom_preview: Option, } // Any value that is present is considered Some value, including null. @@ -265,61 +226,12 @@ where Deserialize::deserialize(deserializer).map(Some) } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct ObjectPreview { - #[serde(rename = "type")] - pub kind: String, - pub subtype: Option, - pub description: Option, - pub overflow: bool, - pub properties: Vec, - pub entries: Option>, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct PropertyPreview { - pub name: String, - #[serde(rename = "type")] - pub kind: String, - pub value: Option, - pub value_preview: Option, - pub subtype: Option, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct EntryPreview { - pub key: Option, - pub value: ObjectPreview, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CustomPreview { - pub header: String, - pub body_getter_id: RemoteObjectId, -} - /// #[derive(Debug, Clone, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ExceptionDetails { - pub exception_id: u64, pub text: String, - pub line_number: u64, - pub column_number: u64, - pub script_id: Option, - pub url: Option, - pub stack_trace: Option, pub exception: Option, - pub execution_context_id: Option, - pub exception_meta_data: Option>, } impl ExceptionDetails { @@ -333,35 +245,6 @@ impl ExceptionDetails { } } -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct StackTrace { - pub description: Option, - pub call_frames: Vec, - pub parent: Option>, - pub parent_id: Option, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CallFrame { - pub function_name: String, - pub script_id: ScriptId, - pub url: String, - pub line_number: u64, - pub column_number: u64, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct StackTraceId { - pub id: String, - pub debugger_id: Option, -} - /// #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -384,38 +267,11 @@ impl From<&RemoteObject> for CallArgument { } } -/// +/// #[derive(Debug, Clone, Deserialize)] #[serde(rename_all = "camelCase")] pub struct PropertyDescriptor { pub name: String, - pub value: Option, - pub writable: Option, - pub get: Option, - pub set: Option, - pub configurable: bool, - pub enumerable: bool, - pub was_thrown: Option, - pub is_own: Option, - pub symbol: Option, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct InternalPropertyDescriptor { - pub name: String, - pub value: Option, -} - -/// -#[derive(Debug, Clone, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct PrivatePropertyDescriptor { - pub name: String, - pub value: Option, - pub get: Option, - pub set: Option, } /// @@ -433,9 +289,6 @@ pub type TimeDelta = u64; /// pub type UnserializableValue = String; -/// -pub type UniqueDebuggerId = String; - /// #[derive(Debug, Deserialize)] pub struct SetScriptSourceResponse { @@ -523,7 +376,6 @@ pub struct Notification { #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ExceptionThrown { - pub timestamp: f64, pub exception_details: ExceptionDetails, } @@ -539,8 +391,5 @@ pub struct ExecutionContextCreated { #[serde(rename_all = "camelCase")] pub struct ExecutionContextDescription { pub id: ExecutionContextId, - pub origin: String, - pub name: String, - pub unique_id: String, pub aux_data: Value, } diff --git a/cli/factory.rs b/cli/factory.rs index 5cae24c7c3..ddd63e0795 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -864,7 +864,6 @@ impl CliFactory { // integration. skip_op_registration: self.options.sub_command().is_run(), log_level: self.options.log_level().unwrap_or(log::Level::Info).into(), - coverage_dir: self.options.coverage_dir(), enable_op_summary_metrics: self.options.enable_op_summary_metrics(), enable_testing_features: self.options.enable_testing_features(), has_node_modules_dir: self.options.has_node_modules_dir(), diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index ae9ec6db84..327f725e4d 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -1780,7 +1780,7 @@ impl ConfigTree { ); } } - self.first_folder = settings.first_folder.clone(); + self.first_folder.clone_from(&settings.first_folder); self.scopes = Arc::new(scopes); } diff --git a/cli/lsp/path_to_regex.rs b/cli/lsp/path_to_regex.rs index 10cd651d88..88d8a2ec68 100644 --- a/cli/lsp/path_to_regex.rs +++ b/cli/lsp/path_to_regex.rs @@ -795,8 +795,6 @@ impl Compiler { #[derive(Debug)] pub struct MatchResult { - pub path: String, - pub index: usize, pub params: HashMap, } @@ -824,9 +822,6 @@ impl Matcher { /// Match a string path, optionally returning the match result. pub fn matches(&self, path: &str) -> Option { let caps = self.re.captures(path).ok()??; - let m = caps.get(0)?; - let path = m.as_str().to_string(); - let index = m.start(); let mut params = HashMap::new(); if let Some(keys) = &self.maybe_keys { for (i, key) in keys.iter().enumerate() { @@ -852,11 +847,7 @@ impl Matcher { } } - Some(MatchResult { - path, - index, - params, - }) + Some(MatchResult { params }) } } diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index c06bbfc8d9..9790dfed71 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -502,7 +502,7 @@ impl RedirectResolver { } }; for (specifier, mut entry) in chain { - entry.destination = destination.clone(); + entry.destination.clone_from(&destination); self.entries.insert(specifier, Some(Arc::new(entry))); } destination diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs index 6393c86427..b73bcd1309 100644 --- a/cli/lsp/testing/execution.rs +++ b/cli/lsp/testing/execution.rs @@ -350,7 +350,7 @@ impl TestRun { test::TestEvent::Wait(id) => { reporter.report_wait(tests.read().get(&id).unwrap()); } - test::TestEvent::Output(_, output) => { + test::TestEvent::Output(output) => { reporter.report_output(&output); } test::TestEvent::Slow(id, elapsed) => { diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index 76a33a532f..5e5a509ac2 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -385,7 +385,10 @@ impl TsServer { } None => None, }; - *self.inspector_server.lock() = maybe_inspector_server.clone(); + self + .inspector_server + .lock() + .clone_from(&maybe_inspector_server); // TODO(bartlomieju): why is the join_handle ignored here? Should we store it // on the `TsServer` struct. let receiver = self.receiver.lock().take().unwrap(); @@ -1718,7 +1721,7 @@ fn display_parts_to_string( "linkName" => { if let Some(link) = current_link.as_mut() { link.name = Some(part.text.clone()); - link.target = part.target.clone(); + link.target.clone_from(&part.target); } } "linkText" => { @@ -2271,7 +2274,7 @@ impl RenameLocations { let asset_or_doc = language_server.get_asset_or_document(&specifier)?; // ensure TextDocumentEdit for `location.file_name`. - if text_document_edit_map.get(&uri).is_none() { + if !text_document_edit_map.contains_key(&uri) { text_document_edit_map.insert( uri.clone(), lsp::TextDocumentEdit { @@ -3633,7 +3636,7 @@ impl CompletionEntry { .check_specifier(&import_specifier, specifier) .or_else(|| relative_specifier(specifier, &import_specifier)) { - display_source = new_module_specifier.clone(); + display_source.clone_from(&new_module_specifier); if new_module_specifier != import_data.module_specifier { specifier_rewrite = Some((import_data.module_specifier, new_module_specifier)); diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index b71e47cebd..e2a53e4689 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -264,7 +264,9 @@ fn arc_u8_to_arc_str( // SAFETY: the string is valid UTF-8, and the layout Arc<[u8]> is the same as // Arc. This is proven by the From> impl for Arc<[u8]> from the // standard library. - Ok(unsafe { std::mem::transmute(arc_u8) }) + Ok(unsafe { + std::mem::transmute::, std::sync::Arc>(arc_u8) + }) } struct StandaloneModuleLoaderFactory { @@ -548,7 +550,6 @@ pub async fn run( CliMainWorkerOptions { argv: metadata.argv, log_level: WorkerLogLevel::Info, - coverage_dir: None, enable_op_summary_metrics: false, enable_testing_features: false, has_node_modules_dir, diff --git a/cli/tools/bench/reporters.rs b/cli/tools/bench/reporters.rs index b5229cf0ad..690373dc8d 100644 --- a/cli/tools/bench/reporters.rs +++ b/cli/tools/bench/reporters.rs @@ -169,7 +169,7 @@ impl BenchReporter for ConsoleReporter { fn report_register(&mut self, _desc: &BenchDescription) {} fn report_wait(&mut self, desc: &BenchDescription) { - self.name = desc.name.clone(); + self.name.clone_from(&desc.name); match &desc.group { None => {} diff --git a/cli/tools/coverage/range_tree.rs b/cli/tools/coverage/range_tree.rs index 027c7d9e78..bca52844c0 100644 --- a/cli/tools/coverage/range_tree.rs +++ b/cli/tools/coverage/range_tree.rs @@ -150,7 +150,7 @@ impl<'rt> RangeTree<'rt> { Self::from_sorted_ranges_inner( rta, &mut ranges.iter().peekable(), - ::std::usize::MAX, + usize::MAX, 0, ) } diff --git a/cli/tools/registry/api.rs b/cli/tools/registry/api.rs index c7097267d2..ee9579a194 100644 --- a/cli/tools/registry/api.rs +++ b/cli/tools/registry/api.rs @@ -39,6 +39,7 @@ pub struct OidcTokenResponse { #[derive(serde::Deserialize)] #[serde(rename_all = "camelCase")] pub struct PublishingTaskError { + #[allow(dead_code)] pub code: String, pub message: String, } diff --git a/cli/tools/registry/provenance.rs b/cli/tools/registry/provenance.rs index 7fa2be381f..622e483d6e 100644 --- a/cli/tools/registry/provenance.rs +++ b/cli/tools/registry/provenance.rs @@ -570,6 +570,7 @@ static DEFAULT_REKOR_URL: Lazy = Lazy::new(|| { #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct LogEntry { + #[allow(dead_code)] #[serde(rename = "logID")] pub log_id: String, pub log_index: u64, diff --git a/cli/tools/test/channel.rs b/cli/tools/test/channel.rs index a8ce7a9556..9a003f2d5d 100644 --- a/cli/tools/test/channel.rs +++ b/cli/tools/test/channel.rs @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. use super::TestEvent; -use super::TestStdioStream; use deno_core::futures::future::poll_fn; use deno_core::parking_lot; use deno_core::parking_lot::lock_api::RawMutex; @@ -105,7 +104,6 @@ impl TestEventReceiver { struct TestStream { id: usize, - which: TestStdioStream, read_opt: Option, sender: UnboundedSender<(usize, TestEvent)>, } @@ -113,7 +111,6 @@ struct TestStream { impl TestStream { fn new( id: usize, - which: TestStdioStream, pipe_reader: PipeRead, sender: UnboundedSender<(usize, TestEvent)>, ) -> std::io::Result { @@ -121,7 +118,6 @@ impl TestStream { let read_opt = Some(pipe_reader.into_async()?); Ok(Self { id, - which, read_opt, sender, }) @@ -135,7 +131,7 @@ impl TestStream { true } else if self .sender - .send((self.id, TestEvent::Output(self.which, buffer))) + .send((self.id, TestEvent::Output(buffer))) .is_err() { self.read_opt.take(); @@ -275,14 +271,9 @@ impl TestEventSenderFactory { .build() .unwrap(); runtime.block_on(tokio::task::unconstrained(async move { - let mut test_stdout = TestStream::new( - id, - TestStdioStream::Stdout, - stdout_reader, - sender.clone(), - )?; - let mut test_stderr = - TestStream::new(id, TestStdioStream::Stderr, stderr_reader, sender)?; + let mut test_stdout = + TestStream::new(id, stdout_reader, sender.clone())?; + let mut test_stderr = TestStream::new(id, stderr_reader, sender)?; // This ensures that the stdout and stderr streams in the select! loop below cannot starve each // other. @@ -488,7 +479,7 @@ mod tests { let mut count = 0; for message in messages { match message { - TestEvent::Output(_, vec) => { + TestEvent::Output(vec) => { assert_eq!(vec[0], expected); count += vec.len(); } @@ -619,7 +610,7 @@ mod tests { while let Some((_, message)) = receiver.recv().await { if i % 2 == 0 { let expected_text = format!("{:08x}", i / 2).into_bytes(); - let TestEvent::Output(TestStdioStream::Stderr, text) = message else { + let TestEvent::Output(text) = message else { panic!("Incorrect message: {message:?}"); }; assert_eq!(text, expected_text); @@ -665,7 +656,7 @@ mod tests { .unwrap(); drop(worker); let (_, message) = receiver.recv().await.unwrap(); - let TestEvent::Output(TestStdioStream::Stderr, text) = message else { + let TestEvent::Output(text) = message else { panic!("Incorrect message: {message:?}"); }; assert_eq!(text.as_slice(), b"hello"); diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs index 7416b5a262..88b539470c 100644 --- a/cli/tools/test/mod.rs +++ b/cli/tools/test/mod.rs @@ -454,7 +454,7 @@ pub enum TestEvent { Register(Arc), Plan(TestPlan), Wait(usize), - Output(TestStdioStream, Vec), + Output(Vec), Slow(usize, u64), Result(usize, TestResult, u64), UncaughtError(String, Box), @@ -1491,7 +1491,7 @@ pub async fn report_tests( reporter.report_wait(tests.get(&id).unwrap()); } } - TestEvent::Output(_, output) => { + TestEvent::Output(output) => { reporter.report_output(&output); } TestEvent::Slow(id, elapsed) => { diff --git a/cli/util/file_watcher.rs b/cli/util/file_watcher.rs index 247ae49d8b..b2628760b4 100644 --- a/cli/util/file_watcher.rs +++ b/cli/util/file_watcher.rs @@ -278,7 +278,9 @@ where deno_core::unsync::spawn(async move { loop { let received_changed_paths = watcher_receiver.recv().await; - *changed_paths_.borrow_mut() = received_changed_paths.clone(); + changed_paths_ + .borrow_mut() + .clone_from(&received_changed_paths); match *watcher_.restart_mode.lock() { WatcherRestartMode::Automatic => { diff --git a/cli/worker.rs b/cli/worker.rs index cb52b6101b..f332fc6bb7 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -102,7 +102,6 @@ pub type CreateCoverageCollectorCb = Box< pub struct CliMainWorkerOptions { pub argv: Vec, pub log_level: WorkerLogLevel, - pub coverage_dir: Option, pub enable_op_summary_metrics: bool, pub enable_testing_features: bool, pub has_node_modules_dir: bool, diff --git a/ext/ffi/ir.rs b/ext/ffi/ir.rs index 520ead92ea..ebf64945b4 100644 --- a/ext/ffi/ir.rs +++ b/ext/ffi/ir.rs @@ -8,7 +8,7 @@ use libffi::middle::Arg; use std::ffi::c_void; use std::ptr; -pub struct OutBuffer(pub *mut u8, pub usize); +pub struct OutBuffer(pub *mut u8); // SAFETY: OutBuffer is allocated by us in 00_ffi.js and is guaranteed to be // only used for the purpose of writing return value of structs. @@ -23,9 +23,8 @@ pub fn out_buffer_as_ptr( match out_buffer { Some(out_buffer) => { let ab = out_buffer.buffer(scope).unwrap(); - let len = ab.byte_length(); ab.data() - .map(|non_null| OutBuffer(non_null.as_ptr() as *mut u8, len)) + .map(|non_null| OutBuffer(non_null.as_ptr() as *mut u8)) } None => None, } diff --git a/ext/kv/sqlite.rs b/ext/kv/sqlite.rs index 6dd821bda9..37f5aa6853 100644 --- a/ext/kv/sqlite.rs +++ b/ext/kv/sqlite.rs @@ -195,7 +195,7 @@ fn canonicalize_path(path: &Path) -> Result { } else { names_stack.push(path.to_str().unwrap().to_string()); let current_dir = current_dir()?; - path = current_dir.clone(); + path.clone_from(¤t_dir); } } Err(err) => return Err(err.into()), diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index f39fb6d10f..53a3ea3f0f 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -1424,6 +1424,7 @@ pub const EC_OID: const_oid::ObjectIdentifier = // } pub struct PssPrivateKeyParameters<'a> { pub hash_algorithm: rsa::pkcs8::AlgorithmIdentifierRef<'a>, + #[allow(dead_code)] pub mask_gen_algorithm: rsa::pkcs8::AlgorithmIdentifierRef<'a>, pub salt_length: u32, } diff --git a/ext/node/ops/crypto/x509.rs b/ext/node/ops/crypto/x509.rs index eefe1c6d0e..8ae7c314d8 100644 --- a/ext/node/ops/crypto/x509.rs +++ b/ext/node/ops/crypto/x509.rs @@ -63,7 +63,9 @@ pub fn op_node_x509_parse<'s>( _buf: buf.to_vec(), // SAFETY: Extending the lifetime of the certificate. Backing buffer is // owned by the resource. - cert: unsafe { std::mem::transmute(cert) }, + cert: unsafe { + std::mem::transmute::, X509Certificate<'_>>(cert) + }, pem, }; diff --git a/ext/node/ops/os/cpus.rs b/ext/node/ops/os/cpus.rs index 2e3d2a954e..9de4f1ff3c 100644 --- a/ext/node/ops/os/cpus.rs +++ b/ext/node/ops/os/cpus.rs @@ -106,7 +106,7 @@ pub fn cpu_info() -> Option> { cpu.times.irq = 0; - cpu.model = model.clone(); + cpu.model.clone_from(&model); cpu.speed = cpu_speed / 1000000; } diff --git a/ext/web/lib.rs b/ext/web/lib.rs index 74ed78c7e4..554bad1de0 100644 --- a/ext/web/lib.rs +++ b/ext/web/lib.rs @@ -28,7 +28,6 @@ use std::cell::RefCell; use std::fmt; use std::path::PathBuf; use std::sync::Arc; -use std::usize; use crate::blob::op_blob_create_object_url; use crate::blob::op_blob_create_part; diff --git a/runtime/permissions/lib.rs b/runtime/permissions/lib.rs index 2e94e3aec3..4579eba1a3 100644 --- a/runtime/permissions/lib.rs +++ b/runtime/permissions/lib.rs @@ -592,7 +592,7 @@ impl UnaryPermission { match flag { ChildUnaryPermissionArg::Inherit => { - perms = self.clone(); + perms.clone_from(self); } ChildUnaryPermissionArg::Granted => { if self.check_all_api(None).is_err() { @@ -615,10 +615,12 @@ impl UnaryPermission { } } perms.flag_denied_global = self.flag_denied_global; - perms.flag_denied_list = self.flag_denied_list.clone(); perms.prompt_denied_global = self.prompt_denied_global; - perms.prompt_denied_list = self.prompt_denied_list.clone(); perms.prompt = self.prompt; + perms.flag_denied_list.clone_from(&self.flag_denied_list); + perms + .prompt_denied_list + .clone_from(&self.prompt_denied_list); Ok(perms) } @@ -864,11 +866,11 @@ impl From for RunDescriptor { } } -impl ToString for RunDescriptor { - fn to_string(&self) -> String { +impl std::fmt::Display for RunDescriptor { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - RunDescriptor::Name(s) => s.clone(), - RunDescriptor::Path(p) => p.to_string_lossy().to_string(), + RunDescriptor::Name(s) => f.write_str(s), + RunDescriptor::Path(p) => f.write_str(&p.display().to_string()), } } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 27610ca75a..874939176e 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.77.2" +channel = "1.79.0" components = ["rustfmt", "clippy"] diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index 713594a105..554fc7ac15 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -9534,8 +9534,6 @@ fn lsp_untitled_file_diagnostics() { #[serde(rename_all = "camelCase")] pub struct PerformanceAverage { pub name: String, - pub count: u32, - pub average_duration: u32, } #[derive(Debug, Deserialize)]