Auto merge of #93921 - matthiaskrgr:rollup-wn3jlxj, r=matthiaskrgr
Rollup of 10 pull requests Successful merges: - #90955 (Rename `FilenameTooLong` to `InvalidFilename` and also use it for Windows' `ERROR_INVALID_NAME`) - #91607 (Make `span_extend_to_prev_str()` more robust) - #92895 (Remove some unused functionality) - #93635 (Add missing platform-specific information on current_dir and set_current_dir) - #93660 (rustdoc-json: Add some tests for typealias item) - #93782 (Split `pauth` target feature) - #93868 (Fix incorrect register conflict detection in asm!) - #93888 (Implement `AsFd` for `&T` and `&mut T`.) - #93909 (Fix typo: explicitely -> explicitly) - #93910 (fix mention of moved function in `rustc_hir` docs) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
f19851069e
41 changed files with 487 additions and 99 deletions
|
|
@ -23,6 +23,11 @@ use crate::sys::os as os_imp;
|
|||
|
||||
/// Returns the current working directory as a [`PathBuf`].
|
||||
///
|
||||
/// # Platform-specific behavior
|
||||
///
|
||||
/// This function currently corresponds to the `getcwd` function on Unix
|
||||
/// and the `GetCurrentDirectoryW` function on Windows.
|
||||
///
|
||||
/// # Errors
|
||||
///
|
||||
/// Returns an [`Err`] if the current working directory value is invalid.
|
||||
|
|
@ -49,6 +54,11 @@ pub fn current_dir() -> io::Result<PathBuf> {
|
|||
|
||||
/// Changes the current working directory to the specified path.
|
||||
///
|
||||
/// # Platform-specific behavior
|
||||
///
|
||||
/// This function currently corresponds to the `chdir` function on Unix
|
||||
/// and the `SetCurrentDirectoryW` function on Windows.
|
||||
///
|
||||
/// Returns an [`Err`] if the operation fails.
|
||||
///
|
||||
/// # Examples
|
||||
|
|
|
|||
|
|
@ -296,12 +296,11 @@ pub enum ErrorKind {
|
|||
/// The filesystem does not support making so many hardlinks to the same file.
|
||||
#[unstable(feature = "io_error_more", issue = "86442")]
|
||||
TooManyLinks,
|
||||
/// Filename too long.
|
||||
/// A filename was invalid.
|
||||
///
|
||||
/// The limit might be from the underlying filesystem or API, or an administratively imposed
|
||||
/// resource limit.
|
||||
/// This error can also cause if it exceeded the filename length limit.
|
||||
#[unstable(feature = "io_error_more", issue = "86442")]
|
||||
FilenameTooLong,
|
||||
InvalidFilename,
|
||||
/// Program argument list too long.
|
||||
///
|
||||
/// When trying to run an external program, a system or process limit on the size of the
|
||||
|
|
@ -382,12 +381,12 @@ impl ErrorKind {
|
|||
DirectoryNotEmpty => "directory not empty",
|
||||
ExecutableFileBusy => "executable file busy",
|
||||
FileTooLarge => "file too large",
|
||||
FilenameTooLong => "filename too long",
|
||||
FilesystemLoop => "filesystem loop or indirection limit (e.g. symlink loop)",
|
||||
FilesystemQuotaExceeded => "filesystem quota exceeded",
|
||||
HostUnreachable => "host unreachable",
|
||||
Interrupted => "operation interrupted",
|
||||
InvalidData => "invalid data",
|
||||
InvalidFilename => "invalid filename",
|
||||
InvalidInput => "invalid input parameter",
|
||||
IsADirectory => "is a directory",
|
||||
NetworkDown => "network down",
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ fn kind_from_prim(ek: u32) -> Option<ErrorKind> {
|
|||
Deadlock,
|
||||
CrossesDevices,
|
||||
TooManyLinks,
|
||||
FilenameTooLong,
|
||||
InvalidFilename,
|
||||
ArgumentListTooLong,
|
||||
Interrupted,
|
||||
Other,
|
||||
|
|
|
|||
|
|
@ -200,6 +200,22 @@ pub trait AsFd {
|
|||
fn as_fd(&self) -> BorrowedFd<'_>;
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsFd> AsFd for &T {
|
||||
#[inline]
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
T::as_fd(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsFd> AsFd for &mut T {
|
||||
#[inline]
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
T::as_fd(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl AsFd for BorrowedFd<'_> {
|
||||
#[inline]
|
||||
|
|
|
|||
|
|
@ -966,7 +966,7 @@ pub fn chown<P: AsRef<Path>>(dir: P, uid: Option<u32>, gid: Option<u32>) -> io::
|
|||
///
|
||||
/// fn main() -> std::io::Result<()> {
|
||||
/// let f = std::fs::File::open("/file")?;
|
||||
/// fs::fchown(f, Some(0), Some(0))?;
|
||||
/// fs::fchown(&f, Some(0), Some(0))?;
|
||||
/// Ok(())
|
||||
/// }
|
||||
/// ```
|
||||
|
|
|
|||
|
|
@ -316,6 +316,22 @@ pub trait AsHandle {
|
|||
fn as_handle(&self) -> BorrowedHandle<'_>;
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsHandle> AsHandle for &T {
|
||||
#[inline]
|
||||
fn as_handle(&self) -> BorrowedHandle<'_> {
|
||||
T::as_handle(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsHandle> AsHandle for &mut T {
|
||||
#[inline]
|
||||
fn as_handle(&self) -> BorrowedHandle<'_> {
|
||||
T::as_handle(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl AsHandle for BorrowedHandle<'_> {
|
||||
#[inline]
|
||||
fn as_handle(&self) -> BorrowedHandle<'_> {
|
||||
|
|
|
|||
|
|
@ -210,6 +210,22 @@ pub trait AsSocket {
|
|||
fn as_socket(&self) -> BorrowedSocket<'_>;
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsSocket> AsSocket for &T {
|
||||
#[inline]
|
||||
fn as_socket(&self) -> BorrowedSocket<'_> {
|
||||
T::as_socket(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "io_safety", issue = "87074")]
|
||||
impl<T: AsSocket> AsSocket for &mut T {
|
||||
#[inline]
|
||||
fn as_socket(&self) -> BorrowedSocket<'_> {
|
||||
T::as_socket(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl AsSocket for BorrowedSocket<'_> {
|
||||
#[inline]
|
||||
fn as_socket(&self) -> BorrowedSocket<'_> {
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind {
|
|||
libc::ENOSPC => StorageFull,
|
||||
libc::ENOSYS => Unsupported,
|
||||
libc::EMLINK => TooManyLinks,
|
||||
libc::ENAMETOOLONG => FilenameTooLong,
|
||||
libc::ENAMETOOLONG => InvalidFilename,
|
||||
libc::ENETDOWN => NetworkDown,
|
||||
libc::ENETUNREACH => NetworkUnreachable,
|
||||
libc::ENOTCONN => NotConnected,
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind {
|
|||
c::ERROR_FILE_NOT_FOUND => return NotFound,
|
||||
c::ERROR_PATH_NOT_FOUND => return NotFound,
|
||||
c::ERROR_NO_DATA => return BrokenPipe,
|
||||
c::ERROR_INVALID_NAME => return InvalidFilename,
|
||||
c::ERROR_INVALID_PARAMETER => return InvalidInput,
|
||||
c::ERROR_NOT_ENOUGH_MEMORY | c::ERROR_OUTOFMEMORY => return OutOfMemory,
|
||||
c::ERROR_SEM_TIMEOUT
|
||||
|
|
@ -104,7 +105,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind {
|
|||
c::ERROR_POSSIBLE_DEADLOCK => return Deadlock,
|
||||
c::ERROR_NOT_SAME_DEVICE => return CrossesDevices,
|
||||
c::ERROR_TOO_MANY_LINKS => return TooManyLinks,
|
||||
c::ERROR_FILENAME_EXCED_RANGE => return FilenameTooLong,
|
||||
c::ERROR_FILENAME_EXCED_RANGE => return InvalidFilename,
|
||||
_ => {}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue