error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
  --> $DIR/try-on-option-diagnostics.rs:7:6
   |
LL | fn a_function() -> u32 {
   | ---------------------- this function should return `Result` or `Option` to accept `?`
LL |     let x: Option<u32> = None;
LL |     x?;
   |      ^ cannot use the `?` operator in a function that returns `u32`
   |
   = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `u32`

error[E0277]: the `?` operator can only be used in a closure that returns `Result` or `Option` (or another type that implements `FromResidual`)
  --> $DIR/try-on-option-diagnostics.rs:14:10
   |
LL |     let a_closure = || {
   |                     -- this function should return `Result` or `Option` to accept `?`
LL |         let x: Option<u32> = None;
LL |         x?;
   |          ^ cannot use the `?` operator in a closure that returns `{integer}`
   |
   = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `{integer}`

error[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)
  --> $DIR/try-on-option-diagnostics.rs:26:14
   |
LL |         fn a_method() {
   |         ------------- this function should return `Result` or `Option` to accept `?`
LL |             let x: Option<u32> = None;
LL |             x?;
   |              ^ cannot use the `?` operator in a method that returns `()`
   |
   = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `()`

error[E0277]: the `?` operator can only be used in a trait method that returns `Result` or `Option` (or another type that implements `FromResidual`)
  --> $DIR/try-on-option-diagnostics.rs:39:14
   |
LL |         fn a_trait_method() {
   |         ------------------- this function should return `Result` or `Option` to accept `?`
LL |             let x: Option<u32> = None;
LL |             x?;
   |              ^ cannot use the `?` operator in a trait method that returns `()`
   |
   = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `()`

error: aborting due to 4 previous errors

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