error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
  --> $DIR/try-operator-on-main.rs:9:5
   |
LL | / fn main() {
LL | |     // error for a `Try` type on a non-`Try` fn
LL | |     std::fs::File::open("foo")?;
   | |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
LL | |
...  |
LL | |     try_trait_generic::<()>();
LL | | }
   | |_- this function should return `Result` or `Option` to accept `?`
   |
   = help: the trait `std::ops::Try` is not implemented for `()`
   = note: required by `std::ops::Try::from_error`

error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
  --> $DIR/try-operator-on-main.rs:12:5
   |
LL |     ()?;
   |     ^^^ the `?` operator cannot be applied to type `()`
   |
   = help: the trait `std::ops::Try` is not implemented for `()`
   = note: required by `std::ops::Try::into_result`

error[E0277]: the trait bound `(): std::ops::Try` is not satisfied
  --> $DIR/try-operator-on-main.rs:15:25
   |
LL |     try_trait_generic::<()>();
   |                         ^^ the trait `std::ops::Try` is not implemented for `()`
...
LL | fn try_trait_generic<T: Try>() -> T {
   |                         --- required by this bound in `try_trait_generic`

error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
  --> $DIR/try-operator-on-main.rs:22:5
   |
LL |     ()?;
   |     ^^^ the `?` operator cannot be applied to type `()`
   |
   = help: the trait `std::ops::Try` is not implemented for `()`
   = note: required by `std::ops::Try::into_result`

error: aborting due to 4 previous errors

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