mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 23:12:02 +00:00
Rollup merge of #90430 - jkugelman:must-use-std-a-through-n, r=joshtriplett
Add #[must_use] to remaining std functions (A-N) I've run out of compelling reasons to group functions together across crates so I'm just going to go module-by-module. This is half of the remaining items from the `std` crate, from A-N. I added these functions myself. Clippy predictably ignored the `mut` ones, but I don't know why the rest weren't flagged. Check them closely, please? Maybe I overlooked good reasons. ```rust std::backtrace::Backtrace const fn disabled() -> Backtrace; std::backtrace::Backtrace<'a> fn frames(&'a self) -> &'a [BacktraceFrame]; std::collections::hash_map::RawOccupiedEntryMut<'a, K, V> fn key_mut(&mut self) -> &mut K; std::collections::hash_map::RawOccupiedEntryMut<'a, K, V> fn get_mut(&mut self) -> &mut V; std::collections::hash_map::RawOccupiedEntryMut<'a, K, V> fn get_key_value(&mut self) -> (&K, &V); std::collections::hash_map::RawOccupiedEntryMut<'a, K, V> fn get_key_value_mut(&mut self) -> (&mut K, &mut V); std::env fn var_os<K: AsRef<OsStr>>(key: K) -> Option<OsString>; std::env fn split_paths<T: AsRef<OsStr> + ?Sized>(unparsed: &T) -> SplitPaths<'_>; std::io::Error fn get_mut(&mut self) -> Option<&mut (dyn error::Error + Send + Sync + 'static)>; ``` Parent issue: #89692 r? `@joshtriplett`
This commit is contained in:
commit
26f505c433
@ -110,6 +110,7 @@ use crate::vec::Vec;
|
|||||||
/// previous point in time. In some instances the `Backtrace` type may
|
/// previous point in time. In some instances the `Backtrace` type may
|
||||||
/// internally be empty due to configuration. For more information see
|
/// internally be empty due to configuration. For more information see
|
||||||
/// `Backtrace::capture`.
|
/// `Backtrace::capture`.
|
||||||
|
#[must_use]
|
||||||
pub struct Backtrace {
|
pub struct Backtrace {
|
||||||
inner: Inner,
|
inner: Inner,
|
||||||
}
|
}
|
||||||
@ -355,6 +356,7 @@ impl Backtrace {
|
|||||||
/// Returns the status of this backtrace, indicating whether this backtrace
|
/// Returns the status of this backtrace, indicating whether this backtrace
|
||||||
/// request was unsupported, disabled, or a stack trace was actually
|
/// request was unsupported, disabled, or a stack trace was actually
|
||||||
/// captured.
|
/// captured.
|
||||||
|
#[must_use]
|
||||||
pub fn status(&self) -> BacktraceStatus {
|
pub fn status(&self) -> BacktraceStatus {
|
||||||
match self.inner {
|
match self.inner {
|
||||||
Inner::Unsupported => BacktraceStatus::Unsupported,
|
Inner::Unsupported => BacktraceStatus::Unsupported,
|
||||||
@ -366,6 +368,7 @@ impl Backtrace {
|
|||||||
|
|
||||||
impl<'a> Backtrace {
|
impl<'a> Backtrace {
|
||||||
/// Returns an iterator over the backtrace frames.
|
/// Returns an iterator over the backtrace frames.
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "backtrace_frames", issue = "79676")]
|
#[unstable(feature = "backtrace_frames", issue = "79676")]
|
||||||
pub fn frames(&'a self) -> &'a [BacktraceFrame] {
|
pub fn frames(&'a self) -> &'a [BacktraceFrame] {
|
||||||
if let Inner::Captured(c) = &self.inner { &c.force().frames } else { &[] }
|
if let Inner::Captured(c) = &self.inner { &c.force().frames } else { &[] }
|
||||||
|
@ -1707,6 +1707,7 @@ impl<'a, K, V, S> RawEntryMut<'a, K, V, S> {
|
|||||||
impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
||||||
/// Gets a reference to the key in the entry.
|
/// Gets a reference to the key in the entry.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
||||||
pub fn key(&self) -> &K {
|
pub fn key(&self) -> &K {
|
||||||
self.base.key()
|
self.base.key()
|
||||||
@ -1714,6 +1715,7 @@ impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
|||||||
|
|
||||||
/// Gets a mutable reference to the key in the entry.
|
/// Gets a mutable reference to the key in the entry.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
||||||
pub fn key_mut(&mut self) -> &mut K {
|
pub fn key_mut(&mut self) -> &mut K {
|
||||||
self.base.key_mut()
|
self.base.key_mut()
|
||||||
@ -1730,6 +1732,7 @@ impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
|||||||
|
|
||||||
/// Gets a reference to the value in the entry.
|
/// Gets a reference to the value in the entry.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
||||||
pub fn get(&self) -> &V {
|
pub fn get(&self) -> &V {
|
||||||
self.base.get()
|
self.base.get()
|
||||||
@ -1746,6 +1749,7 @@ impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
|||||||
|
|
||||||
/// Gets a mutable reference to the value in the entry.
|
/// Gets a mutable reference to the value in the entry.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
||||||
pub fn get_mut(&mut self) -> &mut V {
|
pub fn get_mut(&mut self) -> &mut V {
|
||||||
self.base.get_mut()
|
self.base.get_mut()
|
||||||
@ -1753,6 +1757,7 @@ impl<'a, K, V, S> RawOccupiedEntryMut<'a, K, V, S> {
|
|||||||
|
|
||||||
/// Gets a reference to the key and value in the entry.
|
/// Gets a reference to the key and value in the entry.
|
||||||
#[inline]
|
#[inline]
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
#[unstable(feature = "hash_raw_entry", issue = "56167")]
|
||||||
pub fn get_key_value(&mut self) -> (&K, &V) {
|
pub fn get_key_value(&mut self) -> (&K, &V) {
|
||||||
self.base.get_key_value()
|
self.base.get_key_value()
|
||||||
|
@ -113,6 +113,7 @@ pub struct VarsOs {
|
|||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// [`env::vars_os()`]: vars_os
|
/// [`env::vars_os()`]: vars_os
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub fn vars() -> Vars {
|
pub fn vars() -> Vars {
|
||||||
Vars { inner: vars_os() }
|
Vars { inner: vars_os() }
|
||||||
@ -140,6 +141,7 @@ pub fn vars() -> Vars {
|
|||||||
/// println!("{:?}: {:?}", key, value);
|
/// println!("{:?}: {:?}", key, value);
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub fn vars_os() -> VarsOs {
|
pub fn vars_os() -> VarsOs {
|
||||||
VarsOs { inner: os_imp::env() }
|
VarsOs { inner: os_imp::env() }
|
||||||
@ -244,6 +246,7 @@ fn _var(key: &OsStr) -> Result<String, VarError> {
|
|||||||
/// None => println!("{} is not defined in the environment.", key)
|
/// None => println!("{} is not defined in the environment.", key)
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub fn var_os<K: AsRef<OsStr>>(key: K) -> Option<OsString> {
|
pub fn var_os<K: AsRef<OsStr>>(key: K) -> Option<OsString> {
|
||||||
_var_os(key.as_ref())
|
_var_os(key.as_ref())
|
||||||
@ -384,6 +387,7 @@ fn _remove_var(key: &OsStr) {
|
|||||||
/// documentation for more.
|
/// documentation for more.
|
||||||
///
|
///
|
||||||
/// [`env::split_paths()`]: split_paths
|
/// [`env::split_paths()`]: split_paths
|
||||||
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub struct SplitPaths<'a> {
|
pub struct SplitPaths<'a> {
|
||||||
inner: os_imp::SplitPaths<'a>,
|
inner: os_imp::SplitPaths<'a>,
|
||||||
@ -564,6 +568,7 @@ impl Error for JoinPathsError {
|
|||||||
reason = "This function's behavior is unexpected and probably not what you want. \
|
reason = "This function's behavior is unexpected and probably not what you want. \
|
||||||
Consider using a crate from crates.io instead."
|
Consider using a crate from crates.io instead."
|
||||||
)]
|
)]
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub fn home_dir() -> Option<PathBuf> {
|
pub fn home_dir() -> Option<PathBuf> {
|
||||||
os_imp::home_dir()
|
os_imp::home_dir()
|
||||||
@ -603,6 +608,7 @@ pub fn home_dir() -> Option<PathBuf> {
|
|||||||
/// println!("Temporary directory: {}", dir.display());
|
/// println!("Temporary directory: {}", dir.display());
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub fn temp_dir() -> PathBuf {
|
pub fn temp_dir() -> PathBuf {
|
||||||
os_imp::temp_dir()
|
os_imp::temp_dir()
|
||||||
@ -690,6 +696,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
|
|||||||
/// should not be relied upon for security purposes.
|
/// should not be relied upon for security purposes.
|
||||||
///
|
///
|
||||||
/// [`env::args()`]: args
|
/// [`env::args()`]: args
|
||||||
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub struct Args {
|
pub struct Args {
|
||||||
inner: ArgsOs,
|
inner: ArgsOs,
|
||||||
@ -706,6 +713,7 @@ pub struct Args {
|
|||||||
/// should not be relied upon for security purposes.
|
/// should not be relied upon for security purposes.
|
||||||
///
|
///
|
||||||
/// [`env::args_os()`]: args_os
|
/// [`env::args_os()`]: args_os
|
||||||
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
#[stable(feature = "env", since = "1.0.0")]
|
#[stable(feature = "env", since = "1.0.0")]
|
||||||
pub struct ArgsOs {
|
pub struct ArgsOs {
|
||||||
inner: sys::args::Args,
|
inner: sys::args::Args,
|
||||||
|
@ -1009,6 +1009,7 @@ impl NulError {
|
|||||||
/// let nul_error = CString::new("foo bar\0").unwrap_err();
|
/// let nul_error = CString::new("foo bar\0").unwrap_err();
|
||||||
/// assert_eq!(nul_error.nul_position(), 7);
|
/// assert_eq!(nul_error.nul_position(), 7);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn nul_position(&self) -> usize {
|
pub fn nul_position(&self) -> usize {
|
||||||
self.0
|
self.0
|
||||||
@ -1107,6 +1108,7 @@ impl IntoStringError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Access the underlying UTF-8 error that was the cause of this error.
|
/// Access the underlying UTF-8 error that was the cause of this error.
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "cstring_into", since = "1.7.0")]
|
#[stable(feature = "cstring_into", since = "1.7.0")]
|
||||||
pub fn utf8_error(&self) -> Utf8Error {
|
pub fn utf8_error(&self) -> Utf8Error {
|
||||||
self.error
|
self.error
|
||||||
@ -1456,6 +1458,7 @@ impl CStr {
|
|||||||
/// let boxed = c_string.into_boxed_c_str();
|
/// let boxed = c_string.into_boxed_c_str();
|
||||||
/// assert_eq!(boxed.into_c_string(), CString::new("foo").expect("CString::new failed"));
|
/// assert_eq!(boxed.into_c_string(), CString::new("foo").expect("CString::new failed"));
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use = "`self` will be dropped if the result is not used"]
|
||||||
#[stable(feature = "into_boxed_c_str", since = "1.20.0")]
|
#[stable(feature = "into_boxed_c_str", since = "1.20.0")]
|
||||||
pub fn into_c_string(self: Box<CStr>) -> CString {
|
pub fn into_c_string(self: Box<CStr>) -> CString {
|
||||||
let raw = Box::into_raw(self) as *mut [u8];
|
let raw = Box::into_raw(self) as *mut [u8];
|
||||||
|
@ -239,6 +239,7 @@ impl OsString {
|
|||||||
/// assert!(os_string.capacity() >= 10);
|
/// assert!(os_string.capacity() >= 10);
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "osstring_simple_functions", since = "1.9.0")]
|
#[stable(feature = "osstring_simple_functions", since = "1.9.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn capacity(&self) -> usize {
|
pub fn capacity(&self) -> usize {
|
||||||
self.inner.capacity()
|
self.inner.capacity()
|
||||||
@ -709,6 +710,7 @@ impl OsStr {
|
|||||||
|
|
||||||
/// Converts a <code>[Box]<[OsStr]></code> into an [`OsString`] without copying or allocating.
|
/// Converts a <code>[Box]<[OsStr]></code> into an [`OsString`] without copying or allocating.
|
||||||
#[stable(feature = "into_boxed_os_str", since = "1.20.0")]
|
#[stable(feature = "into_boxed_os_str", since = "1.20.0")]
|
||||||
|
#[must_use = "`self` will be dropped if the result is not used"]
|
||||||
pub fn into_os_string(self: Box<OsStr>) -> OsString {
|
pub fn into_os_string(self: Box<OsStr>) -> OsString {
|
||||||
let boxed = unsafe { Box::from_raw(Box::into_raw(self) as *mut Slice) };
|
let boxed = unsafe { Box::from_raw(Box::into_raw(self) as *mut Slice) };
|
||||||
OsString { inner: Buf::from_box(boxed) }
|
OsString { inner: Buf::from_box(boxed) }
|
||||||
|
@ -374,6 +374,7 @@ impl File {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[unstable(feature = "with_options", issue = "65439")]
|
#[unstable(feature = "with_options", issue = "65439")]
|
||||||
pub fn with_options() -> OpenOptions {
|
pub fn with_options() -> OpenOptions {
|
||||||
OpenOptions::new()
|
OpenOptions::new()
|
||||||
@ -983,6 +984,7 @@ impl Metadata {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "file_type", since = "1.1.0")]
|
#[stable(feature = "file_type", since = "1.1.0")]
|
||||||
pub fn file_type(&self) -> FileType {
|
pub fn file_type(&self) -> FileType {
|
||||||
FileType(self.0.file_type())
|
FileType(self.0.file_type())
|
||||||
@ -1100,6 +1102,7 @@ impl Metadata {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn permissions(&self) -> Permissions {
|
pub fn permissions(&self) -> Permissions {
|
||||||
Permissions(self.0.perm())
|
Permissions(self.0.perm())
|
||||||
@ -1247,6 +1250,7 @@ impl Permissions {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use = "call `set_readonly` to modify the readonly flag"]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn readonly(&self) -> bool {
|
pub fn readonly(&self) -> bool {
|
||||||
self.0.readonly()
|
self.0.readonly()
|
||||||
@ -1441,6 +1445,7 @@ impl DirEntry {
|
|||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// The exact text, of course, depends on what files you have in `.`.
|
/// The exact text, of course, depends on what files you have in `.`.
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn path(&self) -> PathBuf {
|
pub fn path(&self) -> PathBuf {
|
||||||
self.0.path()
|
self.0.path()
|
||||||
@ -1536,6 +1541,7 @@ impl DirEntry {
|
|||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "dir_entry_ext", since = "1.1.0")]
|
#[stable(feature = "dir_entry_ext", since = "1.1.0")]
|
||||||
pub fn file_name(&self) -> OsString {
|
pub fn file_name(&self) -> OsString {
|
||||||
self.0.file_name()
|
self.0.file_name()
|
||||||
|
@ -442,6 +442,7 @@ impl Error {
|
|||||||
/// println!("last OS error: {:?}", Error::last_os_error());
|
/// println!("last OS error: {:?}", Error::last_os_error());
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn last_os_error() -> Error {
|
pub fn last_os_error() -> Error {
|
||||||
Error::from_raw_os_error(sys::os::errno() as i32)
|
Error::from_raw_os_error(sys::os::errno() as i32)
|
||||||
@ -509,6 +510,7 @@ impl Error {
|
|||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn raw_os_error(&self) -> Option<i32> {
|
pub fn raw_os_error(&self) -> Option<i32> {
|
||||||
match self.repr {
|
match self.repr {
|
||||||
@ -547,6 +549,7 @@ impl Error {
|
|||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "io_error_inner", since = "1.3.0")]
|
#[stable(feature = "io_error_inner", since = "1.3.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn get_ref(&self) -> Option<&(dyn error::Error + Send + Sync + 'static)> {
|
pub fn get_ref(&self) -> Option<&(dyn error::Error + Send + Sync + 'static)> {
|
||||||
match self.repr {
|
match self.repr {
|
||||||
@ -620,6 +623,7 @@ impl Error {
|
|||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "io_error_inner", since = "1.3.0")]
|
#[stable(feature = "io_error_inner", since = "1.3.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn get_mut(&mut self) -> Option<&mut (dyn error::Error + Send + Sync + 'static)> {
|
pub fn get_mut(&mut self) -> Option<&mut (dyn error::Error + Send + Sync + 'static)> {
|
||||||
match self.repr {
|
match self.repr {
|
||||||
@ -688,6 +692,7 @@ impl Error {
|
|||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn kind(&self) -> ErrorKind {
|
pub fn kind(&self) -> ErrorKind {
|
||||||
match self.repr {
|
match self.repr {
|
||||||
|
@ -1308,6 +1308,7 @@ pub struct Initializer(bool);
|
|||||||
impl Initializer {
|
impl Initializer {
|
||||||
/// Returns a new `Initializer` which will zero out buffers.
|
/// Returns a new `Initializer` which will zero out buffers.
|
||||||
#[unstable(feature = "read_initializer", issue = "42788")]
|
#[unstable(feature = "read_initializer", issue = "42788")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn zeroing() -> Initializer {
|
pub fn zeroing() -> Initializer {
|
||||||
Initializer(true)
|
Initializer(true)
|
||||||
@ -1322,6 +1323,7 @@ impl Initializer {
|
|||||||
/// the method accurately reflects the number of bytes that have been
|
/// the method accurately reflects the number of bytes that have been
|
||||||
/// written to the head of the buffer.
|
/// written to the head of the buffer.
|
||||||
#[unstable(feature = "read_initializer", issue = "42788")]
|
#[unstable(feature = "read_initializer", issue = "42788")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub unsafe fn nop() -> Initializer {
|
pub unsafe fn nop() -> Initializer {
|
||||||
Initializer(false)
|
Initializer(false)
|
||||||
@ -1329,6 +1331,7 @@ impl Initializer {
|
|||||||
|
|
||||||
/// Indicates if a buffer should be initialized.
|
/// Indicates if a buffer should be initialized.
|
||||||
#[unstable(feature = "read_initializer", issue = "42788")]
|
#[unstable(feature = "read_initializer", issue = "42788")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn should_initialize(&self) -> bool {
|
pub fn should_initialize(&self) -> bool {
|
||||||
self.0
|
self.0
|
||||||
|
@ -301,6 +301,7 @@ pub struct StdinLock<'a> {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn stdin() -> Stdin {
|
pub fn stdin() -> Stdin {
|
||||||
static INSTANCE: SyncOnceCell<Mutex<BufReader<StdinRaw>>> = SyncOnceCell::new();
|
static INSTANCE: SyncOnceCell<Mutex<BufReader<StdinRaw>>> = SyncOnceCell::new();
|
||||||
@ -674,6 +675,7 @@ static STDOUT: SyncOnceCell<ReentrantMutex<RefCell<LineWriter<StdoutRaw>>>> = Sy
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn stdout() -> Stdout {
|
pub fn stdout() -> Stdout {
|
||||||
Stdout {
|
Stdout {
|
||||||
@ -954,6 +956,7 @@ pub struct StderrLock<'a> {
|
|||||||
/// Ok(())
|
/// Ok(())
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn stderr() -> Stderr {
|
pub fn stderr() -> Stderr {
|
||||||
// Note that unlike `stdout()` we don't use `at_exit` here to register a
|
// Note that unlike `stdout()` we don't use `at_exit` here to register a
|
||||||
|
@ -32,6 +32,7 @@ pub struct Empty;
|
|||||||
/// io::empty().read_to_string(&mut buffer).unwrap();
|
/// io::empty().read_to_string(&mut buffer).unwrap();
|
||||||
/// assert!(buffer.is_empty());
|
/// assert!(buffer.is_empty());
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
||||||
pub const fn empty() -> Empty {
|
pub const fn empty() -> Empty {
|
||||||
@ -112,6 +113,7 @@ pub struct Repeat {
|
|||||||
/// io::repeat(0b101).read_exact(&mut buffer).unwrap();
|
/// io::repeat(0b101).read_exact(&mut buffer).unwrap();
|
||||||
/// assert_eq!(buffer, [0b101, 0b101, 0b101]);
|
/// assert_eq!(buffer, [0b101, 0b101, 0b101]);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
||||||
pub const fn repeat(byte: u8) -> Repeat {
|
pub const fn repeat(byte: u8) -> Repeat {
|
||||||
@ -192,6 +194,7 @@ pub struct Sink;
|
|||||||
/// let num_bytes = io::sink().write(&buffer).unwrap();
|
/// let num_bytes = io::sink().write(&buffer).unwrap();
|
||||||
/// assert_eq!(num_bytes, 5);
|
/// assert_eq!(num_bytes, 5);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
#[rustc_const_unstable(feature = "const_io_structs", issue = "78812")]
|
||||||
pub const fn sink() -> Sink {
|
pub const fn sink() -> Sink {
|
||||||
|
@ -149,6 +149,7 @@ impl SocketAddr {
|
|||||||
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
||||||
/// assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
|
/// assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "ip_addr", since = "1.7.0")]
|
#[stable(feature = "ip_addr", since = "1.7.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn ip(&self) -> IpAddr {
|
pub const fn ip(&self) -> IpAddr {
|
||||||
@ -189,6 +190,7 @@ impl SocketAddr {
|
|||||||
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
||||||
/// assert_eq!(socket.port(), 8080);
|
/// assert_eq!(socket.port(), 8080);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn port(&self) -> u16 {
|
pub const fn port(&self) -> u16 {
|
||||||
@ -297,6 +299,7 @@ impl SocketAddrV4 {
|
|||||||
/// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
|
/// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
|
||||||
/// assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
|
/// assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1));
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn ip(&self) -> &Ipv4Addr {
|
pub const fn ip(&self) -> &Ipv4Addr {
|
||||||
@ -331,6 +334,7 @@ impl SocketAddrV4 {
|
|||||||
/// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
|
/// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
|
||||||
/// assert_eq!(socket.port(), 8080);
|
/// assert_eq!(socket.port(), 8080);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn port(&self) -> u16 {
|
pub const fn port(&self) -> u16 {
|
||||||
@ -396,6 +400,7 @@ impl SocketAddrV6 {
|
|||||||
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
/// assert_eq!(socket.ip(), &Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
|
/// assert_eq!(socket.ip(), &Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn ip(&self) -> &Ipv6Addr {
|
pub const fn ip(&self) -> &Ipv6Addr {
|
||||||
@ -428,6 +433,7 @@ impl SocketAddrV6 {
|
|||||||
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
/// assert_eq!(socket.port(), 8080);
|
/// assert_eq!(socket.port(), 8080);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn port(&self) -> u16 {
|
pub const fn port(&self) -> u16 {
|
||||||
@ -470,6 +476,7 @@ impl SocketAddrV6 {
|
|||||||
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
|
||||||
/// assert_eq!(socket.flowinfo(), 10);
|
/// assert_eq!(socket.flowinfo(), 10);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn flowinfo(&self) -> u32 {
|
pub const fn flowinfo(&self) -> u32 {
|
||||||
@ -509,6 +516,7 @@ impl SocketAddrV6 {
|
|||||||
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
|
||||||
/// assert_eq!(socket.scope_id(), 78);
|
/// assert_eq!(socket.scope_id(), 78);
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
#[rustc_const_unstable(feature = "const_socketaddr", issue = "82485")]
|
||||||
pub const fn scope_id(&self) -> u32 {
|
pub const fn scope_id(&self) -> u32 {
|
||||||
|
@ -518,6 +518,7 @@ impl Ipv4Addr {
|
|||||||
/// ```
|
/// ```
|
||||||
#[rustc_const_stable(feature = "const_ipv4", since = "1.50.0")]
|
#[rustc_const_stable(feature = "const_ipv4", since = "1.50.0")]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn octets(&self) -> [u8; 4] {
|
pub const fn octets(&self) -> [u8; 4] {
|
||||||
// This returns the order we want because s_addr is stored in big-endian.
|
// This returns the order we want because s_addr is stored in big-endian.
|
||||||
@ -1284,6 +1285,7 @@ impl Ipv6Addr {
|
|||||||
/// ```
|
/// ```
|
||||||
#[rustc_const_stable(feature = "const_ipv6", since = "1.50.0")]
|
#[rustc_const_stable(feature = "const_ipv6", since = "1.50.0")]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn segments(&self) -> [u16; 8] {
|
pub const fn segments(&self) -> [u16; 8] {
|
||||||
// All elements in `s6_addr` must be big endian.
|
// All elements in `s6_addr` must be big endian.
|
||||||
@ -1594,6 +1596,7 @@ impl Ipv6Addr {
|
|||||||
/// ```
|
/// ```
|
||||||
#[rustc_const_unstable(feature = "const_ipv6", issue = "76205")]
|
#[rustc_const_unstable(feature = "const_ipv6", issue = "76205")]
|
||||||
#[unstable(feature = "ip", issue = "27709")]
|
#[unstable(feature = "ip", issue = "27709")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn multicast_scope(&self) -> Option<Ipv6MulticastScope> {
|
pub const fn multicast_scope(&self) -> Option<Ipv6MulticastScope> {
|
||||||
if self.is_multicast() {
|
if self.is_multicast() {
|
||||||
@ -1744,6 +1747,7 @@ impl Ipv6Addr {
|
|||||||
/// ```
|
/// ```
|
||||||
#[rustc_const_stable(feature = "const_ipv6", since = "1.32.0")]
|
#[rustc_const_stable(feature = "const_ipv6", since = "1.32.0")]
|
||||||
#[stable(feature = "ipv6_to_octets", since = "1.12.0")]
|
#[stable(feature = "ipv6_to_octets", since = "1.12.0")]
|
||||||
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn octets(&self) -> [u8; 16] {
|
pub const fn octets(&self) -> [u8; 16] {
|
||||||
self.inner.s6_addr
|
self.inner.s6_addr
|
||||||
|
@ -90,6 +90,7 @@ pub struct TcpListener(net_imp::TcpListener);
|
|||||||
/// See its documentation for more.
|
/// See its documentation for more.
|
||||||
///
|
///
|
||||||
/// [`accept`]: TcpListener::accept
|
/// [`accept`]: TcpListener::accept
|
||||||
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Incoming<'a> {
|
pub struct Incoming<'a> {
|
||||||
|
@ -13,8 +13,8 @@ mod bar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
io::stdout();
|
let _ = io::stdout();
|
||||||
self::std::io::stdout();
|
let _ = self::std::io::stdout();
|
||||||
foo::my_std::io::stdout();
|
let _ = foo::my_std::io::stdout();
|
||||||
bar::std::io::stdout();
|
let _ = bar::std::io::stdout();
|
||||||
}
|
}
|
||||||
|
@ -44,10 +44,10 @@ mod bar {
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
foo::Foo(());
|
foo::Foo(());
|
||||||
foo::std_io::stdout();
|
let _ = foo::std_io::stdout();
|
||||||
foo::local_io(());
|
foo::local_io(());
|
||||||
io::stdout();
|
let _ = io::stdout();
|
||||||
bar::io::stdout();
|
let _ = bar::io::stdout();
|
||||||
bar::std();
|
bar::std();
|
||||||
bar::std!();
|
bar::std!();
|
||||||
|
|
||||||
@ -56,6 +56,6 @@ fn main() {
|
|||||||
// scope is allowed, when both resolve to the same definition.
|
// scope is allowed, when both resolve to the same definition.
|
||||||
use std::io;
|
use std::io;
|
||||||
use io::stdout;
|
use io::stdout;
|
||||||
stdout();
|
let _ = stdout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ use self::std::io as local_io;
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
Foo(());
|
Foo(());
|
||||||
std_io::stdout();
|
let _ = std_io::stdout();
|
||||||
local_io(());
|
local_io(());
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -28,6 +28,6 @@ fn main() {
|
|||||||
// scope is allowed, when both resolve to the same definition.
|
// scope is allowed, when both resolve to the same definition.
|
||||||
use ::std::io as std_io;
|
use ::std::io as std_io;
|
||||||
use std_io::stdout;
|
use std_io::stdout;
|
||||||
stdout();
|
let _ = stdout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,8 +46,8 @@ mod bar {
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
foo::Foo(());
|
foo::Foo(());
|
||||||
foo::std_io::stdout();
|
let _ = foo::std_io::stdout();
|
||||||
foo::local_io(());
|
foo::local_io(());
|
||||||
io::stdout();
|
let _ = io::stdout();
|
||||||
bar::io::stdout();
|
let _ = bar::io::stdout();
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,6 @@ m2!();
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
Foo(());
|
Foo(());
|
||||||
std_io::stdout();
|
let _ = std_io::stdout();
|
||||||
local_io(());
|
local_io(());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user