From 952fbacaf10af07da71bc1f688f83b20c718d7ae Mon Sep 17 00:00:00 2001 From: Zhang Junyang Date: Thu, 20 Jun 2024 16:09:42 +0000 Subject: [PATCH] Fix multiple deprecation problems --- kernel/aster-nix/src/fs/exfat/dentry.rs | 8 ++++---- kernel/aster-nix/src/fs/exfat/inode.rs | 4 ++++ kernel/aster-nix/src/fs/inode_handle/mod.rs | 4 ++-- kernel/aster-nix/src/fs/utils/random_test.rs | 4 ++-- kernel/aster-nix/src/process/rlimit.rs | 9 +++------ kernel/libs/aster-rights-proc/src/require_attr.rs | 6 +++++- kernel/libs/comp-sys/component/src/lib.rs | 2 +- kernel/libs/keyable-arc/src/lib.rs | 9 +++++++-- 8 files changed, 28 insertions(+), 18 deletions(-) diff --git a/kernel/aster-nix/src/fs/exfat/dentry.rs b/kernel/aster-nix/src/fs/exfat/dentry.rs index 01a3c6470..ba42781da 100644 --- a/kernel/aster-nix/src/fs/exfat/dentry.rs +++ b/kernel/aster-nix/src/fs/exfat/dentry.rs @@ -3,7 +3,7 @@ #![allow(dead_code)] #![allow(unused_variables)] -use core::ops::Range; +use core::{fmt::Display, ops::Range}; use aster_frame::mm::VmIo; use aster_rights::Full; @@ -737,9 +737,9 @@ impl ExfatName { } } -impl ToString for ExfatName { - fn to_string(&self) -> String { - String::from_utf16_lossy(&self.0) +impl Display for ExfatName { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!(f, "{}", String::from_utf16_lossy(&self.0)) } } diff --git a/kernel/aster-nix/src/fs/exfat/inode.rs b/kernel/aster-nix/src/fs/exfat/inode.rs index 457acc00b..2444b142a 100644 --- a/kernel/aster-nix/src/fs/exfat/inode.rs +++ b/kernel/aster-nix/src/fs/exfat/inode.rs @@ -481,6 +481,8 @@ impl ExfatInodeInner { target_name.to_string() }; + // FIXME: This isn't expected by the compiler. + #[allow(non_local_definitions)] impl DirentVisitor for Vec<(String, usize)> { fn visit( &mut self, @@ -992,6 +994,8 @@ impl ExfatInode { let new_parent_hash = self.hash_index(); let sub_dir = inner.num_sub_inodes; let mut child_offsets: Vec = vec![]; + // FIXME: This isn't expected by the compiler. + #[allow(non_local_definitions)] impl DirentVisitor for Vec { fn visit( &mut self, diff --git a/kernel/aster-nix/src/fs/inode_handle/mod.rs b/kernel/aster-nix/src/fs/inode_handle/mod.rs index 0ebdf34d7..6cb876097 100644 --- a/kernel/aster-nix/src/fs/inode_handle/mod.rs +++ b/kernel/aster-nix/src/fs/inode_handle/mod.rs @@ -118,7 +118,7 @@ impl InodeHandle_ { let mut offset = self.offset.lock(); let new_offset: isize = match pos { SeekFrom::Start(off /* as usize */) => { - if off > isize::max_value() as usize { + if off > isize::MAX as usize { return_errno_with_message!(Errno::EINVAL, "file offset is too large"); } off as isize @@ -137,7 +137,7 @@ impl InodeHandle_ { if new_offset < 0 { return_errno_with_message!(Errno::EINVAL, "file offset must not be negative"); } - // Invariant: 0 <= new_offset <= isize::max_value() + // Invariant: 0 <= new_offset <= isize::MAX let new_offset = new_offset as usize; *offset = new_offset; Ok(new_offset) diff --git a/kernel/aster-nix/src/fs/utils/random_test.rs b/kernel/aster-nix/src/fs/utils/random_test.rs index 21c871c32..cfaefae66 100644 --- a/kernel/aster-nix/src/fs/utils/random_test.rs +++ b/kernel/aster-nix/src/fs/utils/random_test.rs @@ -351,12 +351,12 @@ impl DirInMemory { match old { DentryInMemory::Dir(ref mut dir) => { dir.inode = lookup_new_inode_result.unwrap(); - dir.name = new_name.clone(); + dir.name.clone_from(new_name); dir.depth = self.depth + 1; } DentryInMemory::File(ref mut file) => { file.inode = lookup_new_inode_result.unwrap(); - file.name = new_name.clone(); + file.name.clone_from(new_name); } } if exist { diff --git a/kernel/aster-nix/src/process/rlimit.rs b/kernel/aster-nix/src/process/rlimit.rs index 6ef1a178d..cc848713e 100644 --- a/kernel/aster-nix/src/process/rlimit.rs +++ b/kernel/aster-nix/src/process/rlimit.rs @@ -67,10 +67,7 @@ pub struct RLimit64 { impl RLimit64 { pub fn new(cur: u64) -> Self { - Self { - cur, - max: u64::max_value(), - } + Self { cur, max: u64::MAX } } pub fn get_cur(&self) -> u64 { @@ -85,8 +82,8 @@ impl RLimit64 { impl Default for RLimit64 { fn default() -> Self { Self { - cur: u64::max_value(), - max: u64::max_value(), + cur: u64::MAX, + max: u64::MAX, } } } diff --git a/kernel/libs/aster-rights-proc/src/require_attr.rs b/kernel/libs/aster-rights-proc/src/require_attr.rs index eb48870da..ced40f68c 100644 --- a/kernel/libs/aster-rights-proc/src/require_attr.rs +++ b/kernel/libs/aster-rights-proc/src/require_attr.rs @@ -69,11 +69,15 @@ pub fn expand_require(item: RequireItem, mut require_attr: RequireAttr) -> Token match item { RequireItem::Impl(item_impl) => { let new_item_impl = require_attr.fold_item_impl(item_impl); - quote!(#new_item_impl) + quote!( + #[allow(clippy::multiple_bound_locations)] + #new_item_impl + ) } RequireItem::Fn(item_fn) => { let new_item_fn = require_attr.fold_item_fn(item_fn); quote!( + #[allow(clippy::multiple_bound_locations)] #new_item_fn ) } diff --git a/kernel/libs/comp-sys/component/src/lib.rs b/kernel/libs/comp-sys/component/src/lib.rs index b902e523e..18d06473a 100644 --- a/kernel/libs/comp-sys/component/src/lib.rs +++ b/kernel/libs/comp-sys/component/src/lib.rs @@ -152,7 +152,7 @@ fn match_and_call( } else { panic!("The path of {} cannot recognized by component system", str); } - str = str.trim_end_matches('/').to_owned(); + let str = str.trim_end_matches('/').to_owned(); let mut info = components .remove(&str) diff --git a/kernel/libs/keyable-arc/src/lib.rs b/kernel/libs/keyable-arc/src/lib.rs index 95ca34ee0..bd753aa1f 100644 --- a/kernel/libs/keyable-arc/src/lib.rs +++ b/kernel/libs/keyable-arc/src/lib.rs @@ -190,7 +190,9 @@ impl Eq for KeyableArc {} impl Ord for KeyableArc { fn cmp(&self, other: &Self) -> Ordering { - Arc::as_ptr(&self.0).cmp(&Arc::as_ptr(&other.0)) + Arc::as_ptr(&self.0) + .cast::<()>() + .cmp(&Arc::as_ptr(&other.0).cast::<()>()) } } @@ -281,7 +283,10 @@ impl Eq for KeyableWeak {} impl Ord for KeyableWeak { fn cmp(&self, other: &Self) -> Ordering { - self.0.as_ptr().cmp(&other.0.as_ptr()) + self.0 + .as_ptr() + .cast::<()>() + .cmp(&other.0.as_ptr().cast::<()>()) } }