]> git.lizzy.rs Git - rust.git/blob - src/test/ui/inference/issue-72616.rs
Rollup merge of #99064 - lyming2007:issue-97687-fix, r=estebank
[rust.git] / src / test / ui / inference / issue-72616.rs
1 // Regression test for #72616, it used to emit incorrect diagnostics, like:
2 // error[E0283]: type annotations needed for `String`
3 //  --> src/main.rs:8:30
4 //   |
5 // 5 |         let _: String = "".to_owned().try_into().unwrap();
6 //   |             - consider giving this pattern a type
7 // ...
8 // 8 |         if String::from("a") == "a".try_into().unwrap() {}
9 //   |                              ^^ cannot infer type for struct `String`
10 //   |
11 //   = note: cannot satisfy `String: PartialEq<_>`
12
13 use std::convert::TryInto;
14
15 pub fn main() {
16     {
17         let _: String = "".to_owned().try_into().unwrap();
18     }
19     {
20         if String::from("a") == "a".try_into().unwrap() {}
21         //~^ ERROR: type annotations needed
22     }
23     {
24         let _: String = match "_".try_into() {
25             Ok(a) => a,
26             Err(_) => "".into(),
27         };
28     }
29 }