summary refs log tree commit diff
path: root/src/test/ui/try-on-option.stderr
blob: ecd12c430f1f6a421e9887a637c43860021b38a1 (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
error[E0277]: `?` couldn't convert the error to `()`
  --> $DIR/try-on-option.rs:7:6
   |
LL | fn foo() -> Result<u32, ()> {
   |             --------------- expected `()` because of this
LL |     let x: Option<u32> = None;
LL |     x?;
   |      ^ the trait `From<NoneError>` is not implemented for `()`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
   = note: required by `from`
help: consider converting the `Option<T>` into a `Result<T, _>` using `Option::ok_or` or `Option::ok_or_else`
   |
LL |     x.ok_or_else(|| /* error value */)?;
   |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `Try`)
  --> $DIR/try-on-option.rs:13:5
   |
LL | / fn bar() -> u32 {
LL | |     let x: Option<u32> = None;
LL | |     x?;
   | |     ^^ cannot use the `?` operator in a function that returns `u32`
LL | |     22
LL | | }
   | |_- this function should return `Result` or `Option` to accept `?`
   |
   = help: the trait `Try` is not implemented for `u32`
   = note: required by `from_error`

error: aborting due to 2 previous errors

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