]>
Commit | Line | Data |
---|---|---|
f20569fa | 1 | #![deny(clippy::useless_conversion)] |
ed00b5ec | 2 | #![allow(clippy::needless_if, clippy::unnecessary_fallible_conversions)] |
f20569fa | 3 | |
f20569fa XL |
4 | fn test_generic<T: Copy>(val: T) -> T { |
5 | let _ = T::try_from(val).unwrap(); | |
781aab86 | 6 | //~^ ERROR: useless conversion to the same type: `T` |
f20569fa | 7 | val.try_into().unwrap() |
781aab86 | 8 | //~^ ERROR: useless conversion to the same type: `T` |
f20569fa XL |
9 | } |
10 | ||
11 | fn test_generic2<T: Copy + Into<i32> + Into<U>, U: From<T>>(val: T) { | |
12 | // ok | |
13 | let _: i32 = val.try_into().unwrap(); | |
14 | let _: U = val.try_into().unwrap(); | |
15 | let _ = U::try_from(val).unwrap(); | |
16 | } | |
17 | ||
18 | fn main() { | |
19 | test_generic(10i32); | |
20 | test_generic2::<i32, i32>(10i32); | |
21 | ||
22 | let _: String = "foo".try_into().unwrap(); | |
23 | let _: String = TryFrom::try_from("foo").unwrap(); | |
24 | let _ = String::try_from("foo").unwrap(); | |
25 | #[allow(clippy::useless_conversion)] | |
26 | { | |
27 | let _ = String::try_from("foo").unwrap(); | |
28 | let _: String = "foo".try_into().unwrap(); | |
29 | } | |
30 | let _: String = "foo".to_string().try_into().unwrap(); | |
781aab86 | 31 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 32 | let _: String = TryFrom::try_from("foo".to_string()).unwrap(); |
781aab86 | 33 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 34 | let _ = String::try_from("foo".to_string()).unwrap(); |
781aab86 | 35 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 36 | let _ = String::try_from(format!("A: {:04}", 123)).unwrap(); |
781aab86 | 37 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 38 | let _: String = format!("Hello {}", "world").try_into().unwrap(); |
781aab86 | 39 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f2b60f7d | 40 | let _: String = String::new().try_into().unwrap(); |
781aab86 | 41 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 42 | let _: String = match String::from("_").try_into() { |
781aab86 | 43 | //~^ ERROR: useless conversion to the same type: `std::string::String` |
f20569fa | 44 | Ok(a) => a, |
f2b60f7d | 45 | Err(_) => String::new(), |
f20569fa XL |
46 | }; |
47 | // FIXME this is a false negative | |
48 | #[allow(clippy::cmp_owned)] | |
49 | if String::from("a") == TryInto::<String>::try_into(String::from("a")).unwrap() {} | |
50 | } |