Change uses of never type

This commit is contained in:
Christiaan Dirkx 2021-04-14 03:19:01 +02:00
parent 389fef3b30
commit d45e1314f3
15 changed files with 198 additions and 196 deletions

View File

@ -50,55 +50,55 @@ pub struct DirBuilder {}
impl FileAttr { impl FileAttr {
pub fn size(&self) -> u64 { pub fn size(&self) -> u64 {
match self.0 {} self.0
} }
pub fn perm(&self) -> FilePermissions { pub fn perm(&self) -> FilePermissions {
match self.0 {} self.0
} }
pub fn file_type(&self) -> FileType { pub fn file_type(&self) -> FileType {
match self.0 {} self.0
} }
pub fn modified(&self) -> io::Result<SystemTime> { pub fn modified(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
pub fn accessed(&self) -> io::Result<SystemTime> { pub fn accessed(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
pub fn created(&self) -> io::Result<SystemTime> { pub fn created(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
} }
impl Clone for FileAttr { impl Clone for FileAttr {
fn clone(&self) -> FileAttr { fn clone(&self) -> FileAttr {
match self.0 {} self.0
} }
} }
impl FilePermissions { impl FilePermissions {
pub fn readonly(&self) -> bool { pub fn readonly(&self) -> bool {
match self.0 {} self.0
} }
pub fn set_readonly(&mut self, _readonly: bool) { pub fn set_readonly(&mut self, _readonly: bool) {
match self.0 {} self.0
} }
} }
impl Clone for FilePermissions { impl Clone for FilePermissions {
fn clone(&self) -> FilePermissions { fn clone(&self) -> FilePermissions {
match self.0 {} self.0
} }
} }
impl PartialEq for FilePermissions { impl PartialEq for FilePermissions {
fn eq(&self, _other: &FilePermissions) -> bool { fn eq(&self, _other: &FilePermissions) -> bool {
match self.0 {} self.0
} }
} }
@ -106,27 +106,27 @@ impl Eq for FilePermissions {}
impl fmt::Debug for FilePermissions { impl fmt::Debug for FilePermissions {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
impl FileType { impl FileType {
pub fn is_dir(&self) -> bool { pub fn is_dir(&self) -> bool {
match self.0 {} self.0
} }
pub fn is_file(&self) -> bool { pub fn is_file(&self) -> bool {
match self.0 {} self.0
} }
pub fn is_symlink(&self) -> bool { pub fn is_symlink(&self) -> bool {
match self.0 {} self.0
} }
} }
impl Clone for FileType { impl Clone for FileType {
fn clone(&self) -> FileType { fn clone(&self) -> FileType {
match self.0 {} self.0
} }
} }
@ -134,7 +134,7 @@ impl Copy for FileType {}
impl PartialEq for FileType { impl PartialEq for FileType {
fn eq(&self, _other: &FileType) -> bool { fn eq(&self, _other: &FileType) -> bool {
match self.0 {} self.0
} }
} }
@ -142,19 +142,19 @@ impl Eq for FileType {}
impl Hash for FileType { impl Hash for FileType {
fn hash<H: Hasher>(&self, _h: &mut H) { fn hash<H: Hasher>(&self, _h: &mut H) {
match self.0 {} self.0
} }
} }
impl fmt::Debug for FileType { impl fmt::Debug for FileType {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
impl fmt::Debug for ReadDir { impl fmt::Debug for ReadDir {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -162,25 +162,25 @@ impl Iterator for ReadDir {
type Item = io::Result<DirEntry>; type Item = io::Result<DirEntry>;
fn next(&mut self) -> Option<io::Result<DirEntry>> { fn next(&mut self) -> Option<io::Result<DirEntry>> {
match self.0 {} self.0
} }
} }
impl DirEntry { impl DirEntry {
pub fn path(&self) -> PathBuf { pub fn path(&self) -> PathBuf {
match self.0 {} self.0
} }
pub fn file_name(&self) -> OsString { pub fn file_name(&self) -> OsString {
match self.0 {} self.0
} }
pub fn metadata(&self) -> io::Result<FileAttr> { pub fn metadata(&self) -> io::Result<FileAttr> {
match self.0 {} self.0
} }
pub fn file_type(&self) -> io::Result<FileType> { pub fn file_type(&self) -> io::Result<FileType> {
match self.0 {} self.0
} }
} }

View File

@ -415,14 +415,14 @@ pub struct LookupHost(!);
impl LookupHost { impl LookupHost {
pub fn port(&self) -> u16 { pub fn port(&self) -> u16 {
match self.0 {} self.0
} }
} }
impl Iterator for LookupHost { impl Iterator for LookupHost {
type Item = SocketAddr; type Item = SocketAddr;
fn next(&mut self) -> Option<SocketAddr> { fn next(&mut self) -> Option<SocketAddr> {
match self.0 {} self.0
} }
} }

View File

@ -29,7 +29,7 @@ pub fn chdir(_: &path::Path) -> io::Result<()> {
unsupported() unsupported()
} }
pub struct SplitPaths<'a>(&'a !); pub struct SplitPaths<'a>(!, PhantomData<&'a ()>);
pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> { pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
panic!("unsupported") panic!("unsupported")
@ -38,7 +38,7 @@ pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
impl<'a> Iterator for SplitPaths<'a> { impl<'a> Iterator for SplitPaths<'a> {
type Item = PathBuf; type Item = PathBuf;
fn next(&mut self) -> Option<PathBuf> { fn next(&mut self) -> Option<PathBuf> {
match *self.0 {} self.0
} }
} }

View File

@ -318,129 +318,129 @@ impl UdpSocket {
} }
pub fn peer_addr(&self) -> io::Result<SocketAddr> { pub fn peer_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn socket_addr(&self) -> io::Result<SocketAddr> { pub fn socket_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn recv_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> { pub fn recv_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
match self.0 {} self.0
} }
pub fn peek_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> { pub fn peek_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
match self.0 {} self.0
} }
pub fn send_to(&self, _: &[u8], _: &SocketAddr) -> io::Result<usize> { pub fn send_to(&self, _: &[u8], _: &SocketAddr) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn duplicate(&self) -> io::Result<UdpSocket> { pub fn duplicate(&self) -> io::Result<UdpSocket> {
match self.0 {} self.0
} }
pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn read_timeout(&self) -> io::Result<Option<Duration>> { pub fn read_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn write_timeout(&self) -> io::Result<Option<Duration>> { pub fn write_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn set_broadcast(&self, _: bool) -> io::Result<()> { pub fn set_broadcast(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn broadcast(&self) -> io::Result<bool> { pub fn broadcast(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn set_multicast_loop_v4(&self, _: bool) -> io::Result<()> { pub fn set_multicast_loop_v4(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_loop_v4(&self) -> io::Result<bool> { pub fn multicast_loop_v4(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn set_multicast_ttl_v4(&self, _: u32) -> io::Result<()> { pub fn set_multicast_ttl_v4(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_ttl_v4(&self) -> io::Result<u32> { pub fn multicast_ttl_v4(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn set_multicast_loop_v6(&self, _: bool) -> io::Result<()> { pub fn set_multicast_loop_v6(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_loop_v6(&self) -> io::Result<bool> { pub fn multicast_loop_v6(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn join_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> { pub fn join_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn join_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> { pub fn join_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn leave_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> { pub fn leave_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn leave_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> { pub fn leave_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn set_ttl(&self, _: u32) -> io::Result<()> { pub fn set_ttl(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn ttl(&self) -> io::Result<u32> { pub fn ttl(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn take_error(&self) -> io::Result<Option<io::Error>> { pub fn take_error(&self) -> io::Result<Option<io::Error>> {
match self.0 {} self.0
} }
pub fn set_nonblocking(&self, _: bool) -> io::Result<()> { pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn recv(&self, _: &mut [u8]) -> io::Result<usize> { pub fn recv(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> { pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn send(&self, _: &[u8]) -> io::Result<usize> { pub fn send(&self, _: &[u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn connect(&self, _: io::Result<&SocketAddr>) -> io::Result<()> { pub fn connect(&self, _: io::Result<&SocketAddr>) -> io::Result<()> {
match self.0 {} self.0
} }
} }
impl fmt::Debug for UdpSocket { impl fmt::Debug for UdpSocket {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -470,14 +470,14 @@ impl LookupHost {
} }
pub fn port(&self) -> u16 { pub fn port(&self) -> u16 {
match self.0 {} self.0
} }
} }
impl Iterator for LookupHost { impl Iterator for LookupHost {
type Item = SocketAddr; type Item = SocketAddr;
fn next(&mut self) -> Option<SocketAddr> { fn next(&mut self) -> Option<SocketAddr> {
match self.0 {} self.0
} }
} }

View File

@ -5,6 +5,7 @@ use crate::error::Error as StdError;
use crate::ffi::{OsStr, OsString}; use crate::ffi::{OsStr, OsString};
use crate::fmt; use crate::fmt;
use crate::io; use crate::io;
use crate::marker::PhantomData;
use crate::path::{self, PathBuf}; use crate::path::{self, PathBuf};
use crate::str; use crate::str;
use crate::sync::atomic::{AtomicUsize, Ordering}; use crate::sync::atomic::{AtomicUsize, Ordering};
@ -35,7 +36,7 @@ pub fn chdir(_: &path::Path) -> io::Result<()> {
sgx_ineffective(()) sgx_ineffective(())
} }
pub struct SplitPaths<'a>(&'a !); pub struct SplitPaths<'a>(!, PhantomData<&'a ()>);
pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> { pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
panic!("unsupported") panic!("unsupported")
@ -44,7 +45,7 @@ pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
impl<'a> Iterator for SplitPaths<'a> { impl<'a> Iterator for SplitPaths<'a> {
type Item = PathBuf; type Item = PathBuf;
fn next(&mut self) -> Option<PathBuf> { fn next(&mut self) -> Option<PathBuf> {
match *self.0 {} self.0
} }
} }

View File

@ -26,55 +26,55 @@ pub struct DirBuilder {}
impl FileAttr { impl FileAttr {
pub fn size(&self) -> u64 { pub fn size(&self) -> u64 {
match self.0 {} self.0
} }
pub fn perm(&self) -> FilePermissions { pub fn perm(&self) -> FilePermissions {
match self.0 {} self.0
} }
pub fn file_type(&self) -> FileType { pub fn file_type(&self) -> FileType {
match self.0 {} self.0
} }
pub fn modified(&self) -> io::Result<SystemTime> { pub fn modified(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
pub fn accessed(&self) -> io::Result<SystemTime> { pub fn accessed(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
pub fn created(&self) -> io::Result<SystemTime> { pub fn created(&self) -> io::Result<SystemTime> {
match self.0 {} self.0
} }
} }
impl Clone for FileAttr { impl Clone for FileAttr {
fn clone(&self) -> FileAttr { fn clone(&self) -> FileAttr {
match self.0 {} self.0
} }
} }
impl FilePermissions { impl FilePermissions {
pub fn readonly(&self) -> bool { pub fn readonly(&self) -> bool {
match self.0 {} self.0
} }
pub fn set_readonly(&mut self, _readonly: bool) { pub fn set_readonly(&mut self, _readonly: bool) {
match self.0 {} self.0
} }
} }
impl Clone for FilePermissions { impl Clone for FilePermissions {
fn clone(&self) -> FilePermissions { fn clone(&self) -> FilePermissions {
match self.0 {} self.0
} }
} }
impl PartialEq for FilePermissions { impl PartialEq for FilePermissions {
fn eq(&self, _other: &FilePermissions) -> bool { fn eq(&self, _other: &FilePermissions) -> bool {
match self.0 {} self.0
} }
} }
@ -82,27 +82,27 @@ impl Eq for FilePermissions {}
impl fmt::Debug for FilePermissions { impl fmt::Debug for FilePermissions {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
impl FileType { impl FileType {
pub fn is_dir(&self) -> bool { pub fn is_dir(&self) -> bool {
match self.0 {} self.0
} }
pub fn is_file(&self) -> bool { pub fn is_file(&self) -> bool {
match self.0 {} self.0
} }
pub fn is_symlink(&self) -> bool { pub fn is_symlink(&self) -> bool {
match self.0 {} self.0
} }
} }
impl Clone for FileType { impl Clone for FileType {
fn clone(&self) -> FileType { fn clone(&self) -> FileType {
match self.0 {} self.0
} }
} }
@ -110,7 +110,7 @@ impl Copy for FileType {}
impl PartialEq for FileType { impl PartialEq for FileType {
fn eq(&self, _other: &FileType) -> bool { fn eq(&self, _other: &FileType) -> bool {
match self.0 {} self.0
} }
} }
@ -118,19 +118,19 @@ impl Eq for FileType {}
impl Hash for FileType { impl Hash for FileType {
fn hash<H: Hasher>(&self, _h: &mut H) { fn hash<H: Hasher>(&self, _h: &mut H) {
match self.0 {} self.0
} }
} }
impl fmt::Debug for FileType { impl fmt::Debug for FileType {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
impl fmt::Debug for ReadDir { impl fmt::Debug for ReadDir {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -138,25 +138,25 @@ impl Iterator for ReadDir {
type Item = io::Result<DirEntry>; type Item = io::Result<DirEntry>;
fn next(&mut self) -> Option<io::Result<DirEntry>> { fn next(&mut self) -> Option<io::Result<DirEntry>> {
match self.0 {} self.0
} }
} }
impl DirEntry { impl DirEntry {
pub fn path(&self) -> PathBuf { pub fn path(&self) -> PathBuf {
match self.0 {} self.0
} }
pub fn file_name(&self) -> OsString { pub fn file_name(&self) -> OsString {
match self.0 {} self.0
} }
pub fn metadata(&self) -> io::Result<FileAttr> { pub fn metadata(&self) -> io::Result<FileAttr> {
match self.0 {} self.0
} }
pub fn file_type(&self) -> io::Result<FileType> { pub fn file_type(&self) -> io::Result<FileType> {
match self.0 {} self.0
} }
} }
@ -179,59 +179,59 @@ impl File {
} }
pub fn file_attr(&self) -> io::Result<FileAttr> { pub fn file_attr(&self) -> io::Result<FileAttr> {
match self.0 {} self.0
} }
pub fn fsync(&self) -> io::Result<()> { pub fn fsync(&self) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn datasync(&self) -> io::Result<()> { pub fn datasync(&self) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn truncate(&self, _size: u64) -> io::Result<()> { pub fn truncate(&self, _size: u64) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn read(&self, _buf: &mut [u8]) -> io::Result<usize> { pub fn read(&self, _buf: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn read_vectored(&self, _bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> { pub fn read_vectored(&self, _bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_read_vectored(&self) -> bool { pub fn is_read_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn write(&self, _buf: &[u8]) -> io::Result<usize> { pub fn write(&self, _buf: &[u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn write_vectored(&self, _bufs: &[IoSlice<'_>]) -> io::Result<usize> { pub fn write_vectored(&self, _bufs: &[IoSlice<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_write_vectored(&self) -> bool { pub fn is_write_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn flush(&self) -> io::Result<()> { pub fn flush(&self) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn seek(&self, _pos: SeekFrom) -> io::Result<u64> { pub fn seek(&self, _pos: SeekFrom) -> io::Result<u64> {
match self.0 {} self.0
} }
pub fn duplicate(&self) -> io::Result<File> { pub fn duplicate(&self) -> io::Result<File> {
match self.0 {} self.0
} }
pub fn set_permissions(&self, _perm: FilePermissions) -> io::Result<()> { pub fn set_permissions(&self, _perm: FilePermissions) -> io::Result<()> {
match self.0 {} self.0
} }
} }
@ -247,7 +247,7 @@ impl DirBuilder {
impl fmt::Debug for File { impl fmt::Debug for File {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }

View File

@ -17,93 +17,93 @@ impl TcpStream {
} }
pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn read_timeout(&self) -> io::Result<Option<Duration>> { pub fn read_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn write_timeout(&self) -> io::Result<Option<Duration>> { pub fn write_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> { pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn read(&self, _: &mut [u8]) -> io::Result<usize> { pub fn read(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn read_vectored(&self, _: &mut [IoSliceMut<'_>]) -> io::Result<usize> { pub fn read_vectored(&self, _: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_read_vectored(&self) -> bool { pub fn is_read_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn write(&self, _: &[u8]) -> io::Result<usize> { pub fn write(&self, _: &[u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn write_vectored(&self, _: &[IoSlice<'_>]) -> io::Result<usize> { pub fn write_vectored(&self, _: &[IoSlice<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_write_vectored(&self) -> bool { pub fn is_write_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn peer_addr(&self) -> io::Result<SocketAddr> { pub fn peer_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn socket_addr(&self) -> io::Result<SocketAddr> { pub fn socket_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn shutdown(&self, _: Shutdown) -> io::Result<()> { pub fn shutdown(&self, _: Shutdown) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn duplicate(&self) -> io::Result<TcpStream> { pub fn duplicate(&self) -> io::Result<TcpStream> {
match self.0 {} self.0
} }
pub fn set_nodelay(&self, _: bool) -> io::Result<()> { pub fn set_nodelay(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn nodelay(&self) -> io::Result<bool> { pub fn nodelay(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn set_ttl(&self, _: u32) -> io::Result<()> { pub fn set_ttl(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn ttl(&self) -> io::Result<u32> { pub fn ttl(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn take_error(&self) -> io::Result<Option<io::Error>> { pub fn take_error(&self) -> io::Result<Option<io::Error>> {
match self.0 {} self.0
} }
pub fn set_nonblocking(&self, _: bool) -> io::Result<()> { pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
} }
impl fmt::Debug for TcpStream { impl fmt::Debug for TcpStream {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -115,45 +115,45 @@ impl TcpListener {
} }
pub fn socket_addr(&self) -> io::Result<SocketAddr> { pub fn socket_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> { pub fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> {
match self.0 {} self.0
} }
pub fn duplicate(&self) -> io::Result<TcpListener> { pub fn duplicate(&self) -> io::Result<TcpListener> {
match self.0 {} self.0
} }
pub fn set_ttl(&self, _: u32) -> io::Result<()> { pub fn set_ttl(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn ttl(&self) -> io::Result<u32> { pub fn ttl(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn set_only_v6(&self, _: bool) -> io::Result<()> { pub fn set_only_v6(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn only_v6(&self) -> io::Result<bool> { pub fn only_v6(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn take_error(&self) -> io::Result<Option<io::Error>> { pub fn take_error(&self) -> io::Result<Option<io::Error>> {
match self.0 {} self.0
} }
pub fn set_nonblocking(&self, _: bool) -> io::Result<()> { pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
} }
impl fmt::Debug for TcpListener { impl fmt::Debug for TcpListener {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -165,129 +165,129 @@ impl UdpSocket {
} }
pub fn peer_addr(&self) -> io::Result<SocketAddr> { pub fn peer_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn socket_addr(&self) -> io::Result<SocketAddr> { pub fn socket_addr(&self) -> io::Result<SocketAddr> {
match self.0 {} self.0
} }
pub fn recv_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> { pub fn recv_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
match self.0 {} self.0
} }
pub fn peek_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> { pub fn peek_from(&self, _: &mut [u8]) -> io::Result<(usize, SocketAddr)> {
match self.0 {} self.0
} }
pub fn send_to(&self, _: &[u8], _: &SocketAddr) -> io::Result<usize> { pub fn send_to(&self, _: &[u8], _: &SocketAddr) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn duplicate(&self) -> io::Result<UdpSocket> { pub fn duplicate(&self) -> io::Result<UdpSocket> {
match self.0 {} self.0
} }
pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_read_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> { pub fn set_write_timeout(&self, _: Option<Duration>) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn read_timeout(&self) -> io::Result<Option<Duration>> { pub fn read_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn write_timeout(&self) -> io::Result<Option<Duration>> { pub fn write_timeout(&self) -> io::Result<Option<Duration>> {
match self.0 {} self.0
} }
pub fn set_broadcast(&self, _: bool) -> io::Result<()> { pub fn set_broadcast(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn broadcast(&self) -> io::Result<bool> { pub fn broadcast(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn set_multicast_loop_v4(&self, _: bool) -> io::Result<()> { pub fn set_multicast_loop_v4(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_loop_v4(&self) -> io::Result<bool> { pub fn multicast_loop_v4(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn set_multicast_ttl_v4(&self, _: u32) -> io::Result<()> { pub fn set_multicast_ttl_v4(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_ttl_v4(&self) -> io::Result<u32> { pub fn multicast_ttl_v4(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn set_multicast_loop_v6(&self, _: bool) -> io::Result<()> { pub fn set_multicast_loop_v6(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn multicast_loop_v6(&self) -> io::Result<bool> { pub fn multicast_loop_v6(&self) -> io::Result<bool> {
match self.0 {} self.0
} }
pub fn join_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> { pub fn join_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn join_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> { pub fn join_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn leave_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> { pub fn leave_multicast_v4(&self, _: &Ipv4Addr, _: &Ipv4Addr) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn leave_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> { pub fn leave_multicast_v6(&self, _: &Ipv6Addr, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn set_ttl(&self, _: u32) -> io::Result<()> { pub fn set_ttl(&self, _: u32) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn ttl(&self) -> io::Result<u32> { pub fn ttl(&self) -> io::Result<u32> {
match self.0 {} self.0
} }
pub fn take_error(&self) -> io::Result<Option<io::Error>> { pub fn take_error(&self) -> io::Result<Option<io::Error>> {
match self.0 {} self.0
} }
pub fn set_nonblocking(&self, _: bool) -> io::Result<()> { pub fn set_nonblocking(&self, _: bool) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn recv(&self, _: &mut [u8]) -> io::Result<usize> { pub fn recv(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> { pub fn peek(&self, _: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn send(&self, _: &[u8]) -> io::Result<usize> { pub fn send(&self, _: &[u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn connect(&self, _: io::Result<&SocketAddr>) -> io::Result<()> { pub fn connect(&self, _: io::Result<&SocketAddr>) -> io::Result<()> {
match self.0 {} self.0
} }
} }
impl fmt::Debug for UdpSocket { impl fmt::Debug for UdpSocket {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -295,14 +295,14 @@ pub struct LookupHost(!);
impl LookupHost { impl LookupHost {
pub fn port(&self) -> u16 { pub fn port(&self) -> u16 {
match self.0 {} self.0
} }
} }
impl Iterator for LookupHost { impl Iterator for LookupHost {
type Item = SocketAddr; type Item = SocketAddr;
fn next(&mut self) -> Option<SocketAddr> { fn next(&mut self) -> Option<SocketAddr> {
match self.0 {} self.0
} }
} }

View File

@ -3,6 +3,7 @@ use crate::error::Error as StdError;
use crate::ffi::{OsStr, OsString}; use crate::ffi::{OsStr, OsString};
use crate::fmt; use crate::fmt;
use crate::io; use crate::io;
use crate::marker::PhantomData;
use crate::path::{self, PathBuf}; use crate::path::{self, PathBuf};
pub fn errno() -> i32 { pub fn errno() -> i32 {
@ -21,7 +22,7 @@ pub fn chdir(_: &path::Path) -> io::Result<()> {
unsupported() unsupported()
} }
pub struct SplitPaths<'a>(&'a !); pub struct SplitPaths<'a>(!, PhantomData<&'a ()>);
pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> { pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
panic!("unsupported") panic!("unsupported")
@ -30,7 +31,7 @@ pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
impl<'a> Iterator for SplitPaths<'a> { impl<'a> Iterator for SplitPaths<'a> {
type Item = PathBuf; type Item = PathBuf;
fn next(&mut self) -> Option<PathBuf> { fn next(&mut self) -> Option<PathBuf> {
match *self.0 {} self.0
} }
} }
@ -67,7 +68,7 @@ pub struct Env(!);
impl Iterator for Env { impl Iterator for Env {
type Item = (OsString, OsString); type Item = (OsString, OsString);
fn next(&mut self) -> Option<(OsString, OsString)> { fn next(&mut self) -> Option<(OsString, OsString)> {
match self.0 {} self.0
} }
} }

View File

@ -4,31 +4,31 @@ pub struct AnonPipe(!);
impl AnonPipe { impl AnonPipe {
pub fn read(&self, _buf: &mut [u8]) -> io::Result<usize> { pub fn read(&self, _buf: &mut [u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn read_vectored(&self, _bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> { pub fn read_vectored(&self, _bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_read_vectored(&self) -> bool { pub fn is_read_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn write(&self, _buf: &[u8]) -> io::Result<usize> { pub fn write(&self, _buf: &[u8]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn write_vectored(&self, _bufs: &[IoSlice<'_>]) -> io::Result<usize> { pub fn write_vectored(&self, _bufs: &[IoSlice<'_>]) -> io::Result<usize> {
match self.0 {} self.0
} }
pub fn is_write_vectored(&self) -> bool { pub fn is_write_vectored(&self) -> bool {
match self.0 {} self.0
} }
pub fn diverge(&self) -> ! { pub fn diverge(&self) -> ! {
match self.0 {} self.0
} }
} }

View File

@ -98,17 +98,17 @@ pub struct ExitStatus(!);
impl ExitStatus { impl ExitStatus {
pub fn success(&self) -> bool { pub fn success(&self) -> bool {
match self.0 {} self.0
} }
pub fn code(&self) -> Option<i32> { pub fn code(&self) -> Option<i32> {
match self.0 {} self.0
} }
} }
impl Clone for ExitStatus { impl Clone for ExitStatus {
fn clone(&self) -> ExitStatus { fn clone(&self) -> ExitStatus {
match self.0 {} self.0
} }
} }
@ -116,7 +116,7 @@ impl Copy for ExitStatus {}
impl PartialEq for ExitStatus { impl PartialEq for ExitStatus {
fn eq(&self, _other: &ExitStatus) -> bool { fn eq(&self, _other: &ExitStatus) -> bool {
match self.0 {} self.0
} }
} }
@ -124,13 +124,13 @@ impl Eq for ExitStatus {}
impl fmt::Debug for ExitStatus { impl fmt::Debug for ExitStatus {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
impl fmt::Display for ExitStatus { impl fmt::Display for ExitStatus {
fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0 {} self.0
} }
} }
@ -150,19 +150,19 @@ pub struct Process(!);
impl Process { impl Process {
pub fn id(&self) -> u32 { pub fn id(&self) -> u32 {
match self.0 {} self.0
} }
pub fn kill(&mut self) -> io::Result<()> { pub fn kill(&mut self) -> io::Result<()> {
match self.0 {} self.0
} }
pub fn wait(&mut self) -> io::Result<ExitStatus> { pub fn wait(&mut self) -> io::Result<ExitStatus> {
match self.0 {} self.0
} }
pub fn try_wait(&mut self) -> io::Result<Option<ExitStatus>> { pub fn try_wait(&mut self) -> io::Result<Option<ExitStatus>> {
match self.0 {} self.0
} }
} }

View File

@ -26,7 +26,7 @@ impl Thread {
} }
pub fn join(self) { pub fn join(self) {
match self.0 {} self.0
} }
} }

View File

@ -347,14 +347,14 @@ pub struct LookupHost(!);
impl LookupHost { impl LookupHost {
pub fn port(&self) -> u16 { pub fn port(&self) -> u16 {
match self.0 {} self.0
} }
} }
impl Iterator for LookupHost { impl Iterator for LookupHost {
type Item = SocketAddr; type Item = SocketAddr;
fn next(&mut self) -> Option<SocketAddr> { fn next(&mut self) -> Option<SocketAddr> {
match self.0 {} self.0
} }
} }

View File

@ -87,7 +87,7 @@ pub fn chdir(p: &path::Path) -> io::Result<()> {
} }
} }
pub struct SplitPaths<'a>(&'a !); pub struct SplitPaths<'a>(!, PhantomData<&'a ()>);
pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> { pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
panic!("unsupported") panic!("unsupported")
@ -96,7 +96,7 @@ pub fn split_paths(_unparsed: &OsStr) -> SplitPaths<'_> {
impl<'a> Iterator for SplitPaths<'a> { impl<'a> Iterator for SplitPaths<'a> {
type Item = PathBuf; type Item = PathBuf;
fn next(&mut self) -> Option<PathBuf> { fn next(&mut self) -> Option<PathBuf> {
match *self.0 {} self.0
} }
} }

View File

@ -59,7 +59,7 @@ impl Thread {
} }
pub fn join(self) { pub fn join(self) {
match self.0 {} self.0
} }
} }

View File

@ -47,7 +47,7 @@ impl Thread {
} }
pub fn join(self) { pub fn join(self) {
match self.0 {} self.0
} }
} }