2022-11-08 13:16:49 +00:00
|
|
|
// ignore-wasm32 FIXME: ignoring wasm as it suggests slightly different impls
|
|
|
|
|
2020-10-23 07:10:19 +00:00
|
|
|
// Regression test for #72616, it used to emit incorrect diagnostics, like:
|
|
|
|
// error[E0283]: type annotations needed for `String`
|
|
|
|
// --> src/main.rs:8:30
|
|
|
|
// |
|
|
|
|
// 5 | let _: String = "".to_owned().try_into().unwrap();
|
|
|
|
// | - consider giving this pattern a type
|
|
|
|
// ...
|
|
|
|
// 8 | if String::from("a") == "a".try_into().unwrap() {}
|
|
|
|
// | ^^ cannot infer type for struct `String`
|
|
|
|
// |
|
|
|
|
// = note: cannot satisfy `String: PartialEq<_>`
|
|
|
|
|
|
|
|
use std::convert::TryInto;
|
|
|
|
|
|
|
|
pub fn main() {
|
|
|
|
{
|
|
|
|
let _: String = "".to_owned().try_into().unwrap();
|
|
|
|
}
|
|
|
|
{
|
|
|
|
if String::from("a") == "a".try_into().unwrap() {}
|
2022-10-19 15:17:19 +00:00
|
|
|
//~^ ERROR type annotations needed
|
|
|
|
//~| ERROR type annotations needed
|
2020-10-23 07:10:19 +00:00
|
|
|
}
|
|
|
|
{
|
|
|
|
let _: String = match "_".try_into() {
|
|
|
|
Ok(a) => a,
|
|
|
|
Err(_) => "".into(),
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|