summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/question-mark-result-err-mismatch.stderr
blob: 3059e0beca3e4554cd7547fab3fa31ab375b41d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
error[E0277]: `?` couldn't convert the error to `String`
  --> $DIR/question-mark-result-err-mismatch.rs:14:22
   |
LL |   fn foo() -> Result<String, String> {
   |               ---------------------- expected `String` because of this
...
LL |           .map_err(|e| {
   |  __________-
LL | |             e;
   | |              - help: remove this semicolon
LL | |         })
   | |__________- this can't be annotated with `?` because it has type `Result<_, ()>`
LL |           .map(|()| "")?;
   |                        ^ the trait `From<()>` is not implemented for `String`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
   = note: required for `Result<String, String>` to implement `FromResidual<Result<Infallible, ()>>`

error[E0277]: `?` couldn't convert the error to `String`
  --> $DIR/question-mark-result-err-mismatch.rs:28:25
   |
LL | fn bar() -> Result<(), String> {
   |             ------------------ expected `String` because of this
LL |     let x = foo();
   |             ----- this has type `Result<_, String>`
...
LL |         .map_err(|_| ())?;
   |          ---------------^ the trait `From<()>` is not implemented for `String`
   |          |
   |          this can't be annotated with `?` because it has type `Result<_, ()>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
   = help: the following other types implement trait `From<T>`:
             <String as From<char>>
             <String as From<Box<str>>>
             <String as From<Cow<'a, str>>>
             <String as From<&str>>
             <String as From<&mut str>>
             <String as From<&String>>
   = note: required for `Result<(), String>` to implement `FromResidual<Result<Infallible, ()>>`

error[E0277]: `?` couldn't convert the error to `String`
  --> $DIR/question-mark-result-err-mismatch.rs:48:11
   |
LL |   fn baz() -> Result<String, String> {
   |               ---------------------- expected `String` because of this
...
LL |           .ok_or_else(|| {
   |  __________-
LL | |             "Couldn't split the test string";
   | |                                             - help: remove this semicolon
LL | |         })?;
   | |          -^ the trait `From<()>` is not implemented for `String`
   | |__________|
   |            this can't be annotated with `?` because it has type `Result<_, ()>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
   = note: required for `Result<String, String>` to implement `FromResidual<Result<Infallible, ()>>`

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0277`.