mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 21:16:44 +00:00 
			
		
		
		
	 40ae34194c
			
		
	
	
		40ae34194c
		
	
	
	
	
		
			
			detects redundant imports that can be eliminated. for #117772 : In order to facilitate review and modification, split the checking code and removing redundant imports code into two PR.
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::borrow::Cow;
 | |
| use std::ffi::{CStr, OsStr};
 | |
| use std::path::Path;
 | |
| use std::rc::Rc;
 | |
| use std::sync::Arc;
 | |
| 
 | |
| macro_rules! test_from_cow {
 | |
|     ($value:ident => $($ty:ty),+) => {$(
 | |
|         let borrowed = <$ty>::from(Cow::Borrowed($value));
 | |
|         let owned = <$ty>::from(Cow::Owned($value.to_owned()));
 | |
|         assert_eq!($value, &*borrowed);
 | |
|         assert_eq!($value, &*owned);
 | |
|     )+};
 | |
|     ($value:ident : & $ty:ty) => {
 | |
|         test_from_cow!($value => Box<$ty>, Rc<$ty>, Arc<$ty>);
 | |
|     }
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn test_from_cow_slice() {
 | |
|     let slice: &[i32] = &[1, 2, 3];
 | |
|     test_from_cow!(slice: &[i32]);
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn test_from_cow_str() {
 | |
|     let string = "hello";
 | |
|     test_from_cow!(string: &str);
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn test_from_cow_c_str() {
 | |
|     let string = CStr::from_bytes_with_nul(b"hello\0").unwrap();
 | |
|     test_from_cow!(string: &CStr);
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn test_from_cow_os_str() {
 | |
|     let string = OsStr::new("hello");
 | |
|     test_from_cow!(string: &OsStr);
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn test_from_cow_path() {
 | |
|     let path = Path::new("hello");
 | |
|     test_from_cow!(path: &Path);
 | |
| }
 | |
| 
 | |
| #[test]
 | |
| fn cow_const() {
 | |
|     // test that the methods of `Cow` are usable in a const context
 | |
| 
 | |
|     const COW: Cow<'_, str> = Cow::Borrowed("moo");
 | |
| 
 | |
|     const IS_BORROWED: bool = COW.is_borrowed();
 | |
|     assert!(IS_BORROWED);
 | |
| 
 | |
|     const IS_OWNED: bool = COW.is_owned();
 | |
|     assert!(!IS_OWNED);
 | |
| }
 |