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:19:5
   |
LL |     std::fs::File::open("foo")?; //~ ERROR the `?` operator can only
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
   |
   = 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:22:5
   |
LL |     ()?; //~ ERROR the `?` operator can only
   |     ^^^ 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:25:5
   |
LL |     try_trait_generic::<()>(); //~ ERROR the trait bound
   |     ^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::ops::Try` is not implemented for `()`
   |
note: required by `try_trait_generic`
  --> $DIR/try-operator-on-main.rs:30:1
   |
LL | fn try_trait_generic<T: Try>() -> T {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
  --> $DIR/try-operator-on-main.rs:32:5
   |
LL |     ()?; //~ ERROR the `?` operator can only
   |     ^^^ 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`.
