error: consider implementing `TryFrom` instead
  --> $DIR/fallible_impl_from.rs:6:1
   |
LL | / impl From<String> for Foo {
LL | |
LL | |     fn from(s: String) -> Self {
LL | |         Foo(s.parse().unwrap())
LL | |     }
LL | | }
   | |_^
   |
   = help: `From` is intended for infallible conversions only. Use `TryFrom` if there's a possibility for the conversion to fail
note: potential failure(s)
  --> $DIR/fallible_impl_from.rs:9:13
   |
LL |         Foo(s.parse().unwrap())
   |             ^^^^^^^^^^^^^^^^^^
note: the lint level is defined here
  --> $DIR/fallible_impl_from.rs:1:9
   |
LL | #![deny(clippy::fallible_impl_from)]
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: consider implementing `TryFrom` instead
  --> $DIR/fallible_impl_from.rs:28:1
   |
LL | / impl From<usize> for Invalid {
LL | |
LL | |     fn from(i: usize) -> Invalid {
LL | |         if i != 42 {
...  |
LL | |     }
LL | | }
   | |_^
   |
   = help: `From` is intended for infallible conversions only. Use `TryFrom` if there's a possibility for the conversion to fail
note: potential failure(s)
  --> $DIR/fallible_impl_from.rs:32:13
   |
LL |             panic!();
   |             ^^^^^^^^
   = note: this error originates in the macro `$crate::panic::panic_2021` which comes from the expansion of the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info)

error: consider implementing `TryFrom` instead
  --> $DIR/fallible_impl_from.rs:38:1
   |
LL | / impl From<Option<String>> for Invalid {
LL | |
LL | |     fn from(s: Option<String>) -> Invalid {
LL | |         let s = s.unwrap();
...  |
LL | |     }
LL | | }
   | |_^
   |
   = help: `From` is intended for infallible conversions only. Use `TryFrom` if there's a possibility for the conversion to fail
note: potential failure(s)
  --> $DIR/fallible_impl_from.rs:41:17
   |
LL |         let s = s.unwrap();
   |                 ^^^^^^^^^^
LL |         if !s.is_empty() {
LL |             panic!("42");
   |             ^^^^^^^^^^^^
LL |         } else if s.parse::<u32>().unwrap() != 42 {
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
LL |             panic!("{:?}", s);
   |             ^^^^^^^^^^^^^^^^^
   = note: this error originates in the macro `$crate::panic::panic_2021` which comes from the expansion of the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info)

error: consider implementing `TryFrom` instead
  --> $DIR/fallible_impl_from.rs:57:1
   |
LL | / impl<'a> From<&'a mut <Box<u32> as ProjStrTrait>::ProjString> for Invalid {
LL | |
LL | |     fn from(s: &'a mut <Box<u32> as ProjStrTrait>::ProjString) -> Invalid {
LL | |         if s.parse::<u32>().ok().unwrap() != 42 {
...  |
LL | |     }
LL | | }
   | |_^
   |
   = help: `From` is intended for infallible conversions only. Use `TryFrom` if there's a possibility for the conversion to fail
note: potential failure(s)
  --> $DIR/fallible_impl_from.rs:60:12
   |
LL |         if s.parse::<u32>().ok().unwrap() != 42 {
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LL |             panic!("{:?}", s);
   |             ^^^^^^^^^^^^^^^^^
   = note: this error originates in the macro `$crate::panic::panic_2021` which comes from the expansion of the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 4 previous errors