error[E0059]: type parameter to bare `FnOnce` trait must be a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:31:5
   |
LL |     extern "rust-call" fn call_once(mut self, a: A) -> Self::Output {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
note: required by a bound in `FnOnce`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0059]: type parameter to bare `FnOnce` trait must be a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:24:12
   |
LL | impl<A, B> FnOnce<A> for CachedFun<A, B>
   |            ^^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
note: required by a bound in `FnOnce`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0059]: type parameter to bare `FnOnce` trait must be a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:45:5
   |
LL |     extern "rust-call" fn call_mut(&mut self, a: A) -> Self::Output {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
note: required by a bound in `FnOnce`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0059]: type parameter to bare `FnMut` trait must be a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:39:12
   |
LL | impl<A, B> FnMut<A> for CachedFun<A, B>
   |            ^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
note: required by a bound in `FnMut`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0277]: functions with the "rust-call" ABI must take a single non-self tuple argument
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:31:5
   |
LL |     extern "rust-call" fn call_once(mut self, a: A) -> Self::Output {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0277]: functions with the "rust-call" ABI must take a single non-self tuple argument
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:45:5
   |
LL |     extern "rust-call" fn call_mut(&mut self, a: A) -> Self::Output {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0277]: `A` is not a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:34:19
   |
LL |     self.call_mut(a)
   |          -------- ^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `A`
   |          |
   |          required by a bound introduced by this call
   |
note: required by a bound in `call_mut`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: consider further restricting type parameter `A` with unstable trait `Tuple`
   |
LL |     A: Eq + Hash + Clone + std::marker::Tuple,
   |                          ++++++++++++++++++++

error[E0277]: `i32` is not a tuple
  --> $DIR/rust-call-abi-not-a-tuple-ice-81974.rs:59:26
   |
LL |     cachedcoso.call_once(1);
   |                --------- ^ the nightly-only, unstable trait `std::marker::Tuple` is not implemented for `i32`
   |                |
   |                required by a bound introduced by this call
   |
note: required by a bound in `call_once`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
help: use a unary tuple instead
   |
LL |     cachedcoso.call_once((1,));
   |                          + ++

error: aborting due to 8 previous errors

Some errors have detailed explanations: E0059, E0277.
For more information about an error, try `rustc --explain E0059`.
