1 #![feature(tool_lints)]
3 #![deny(clippy::fallible_impl_from)]
7 impl From<String> for Foo {
8 fn from(s: String) -> Self {
9 Foo(s.parse().unwrap())
14 struct Valid(Vec<u8>);
16 impl<'a> From<&'a str> for Valid {
17 fn from(s: &'a str) -> Valid {
18 Valid(s.to_owned().into_bytes())
21 impl From<usize> for Valid {
22 fn from(i: usize) -> Valid {
23 Valid(Vec::with_capacity(i))
30 impl From<usize> for Invalid {
31 fn from(i: usize) -> Invalid {
39 impl From<Option<String>> for Invalid {
40 fn from(s: Option<String>) -> Invalid {
44 } else if s.parse::<u32>().unwrap() != 42 {
54 impl<T> ProjStrTrait for Box<T> {
55 type ProjString = String;
57 impl<'a> From<&'a mut <Box<u32> as ProjStrTrait>::ProjString> for Invalid {
58 fn from(s: &'a mut <Box<u32> as ProjStrTrait>::ProjString) -> Invalid {
59 if s.parse::<u32>().ok().unwrap() != 42 {
68 impl From<String> for Unreachable {
69 fn from(s: String) -> Unreachable {
73 match s.chars().next() {
74 Some(_) => Unreachable,
75 None => unreachable!(), // do not lint the unreachable macro