error[E0369]: binary operation `==` cannot be applied to type `(std::io::Error, T1, {integer})`
  --> $DIR/binary-op-not-allowed-issue-125631.rs:8:48
   |
LL |     (Error::new(ErrorKind::Other, "1"), T1, 1) == (Error::new(ErrorKind::Other, "1"), T1, 2);
   |     ------------------------------------------ ^^ ------------------------------------------ (std::io::Error, T1, {integer})
   |     |
   |     (std::io::Error, T1, {integer})
   |
note: an implementation of `PartialEq` might be missing for `T1`
  --> $DIR/binary-op-not-allowed-issue-125631.rs:4:1
   |
LL | struct T1;
   | ^^^^^^^^^ must implement `PartialEq`
note: the foreign item type `std::io::Error` doesn't implement `PartialEq`
  --> $SRC_DIR/std/src/io/error.rs:LL:COL
   |
   = note: not implement `PartialEq`
help: consider annotating `T1` with `#[derive(PartialEq)]`
   |
LL + #[derive(PartialEq)]
LL | struct T1;
   |

error[E0369]: binary operation `==` cannot be applied to type `(std::io::Error, Thread)`
  --> $DIR/binary-op-not-allowed-issue-125631.rs:11:9
   |
LL |     (Error::new(ErrorKind::Other, "2"), thread::current())
   |     ------------------------------------------------------ (std::io::Error, Thread)
LL |         == (Error::new(ErrorKind::Other, "2"), thread::current());
   |         ^^ ------------------------------------------------------ (std::io::Error, Thread)
   |
note: the foreign item types don't implement required traits for this operation to be valid
  --> $SRC_DIR/std/src/io/error.rs:LL:COL
   |
   = note: not implement `PartialEq`
  --> $SRC_DIR/std/src/thread/mod.rs:LL:COL
   |
   = note: not implement `PartialEq`

error[E0369]: binary operation `==` cannot be applied to type `(std::io::Error, Thread, T1, T2)`
  --> $DIR/binary-op-not-allowed-issue-125631.rs:14:9
   |
LL |     (Error::new(ErrorKind::Other, "4"), thread::current(), T1, T2)
   |     -------------------------------------------------------------- (std::io::Error, Thread, T1, T2)
LL |         == (Error::new(ErrorKind::Other, "4"), thread::current(), T1, T2);
   |         ^^ -------------------------------------------------------------- (std::io::Error, Thread, T1, T2)
   |
note: the following types would have to `impl` their required traits for this operation to be valid
  --> $DIR/binary-op-not-allowed-issue-125631.rs:4:1
   |
LL | struct T1;
   | ^^^^^^^^^ must implement `PartialEq`
LL | struct T2;
   | ^^^^^^^^^ must implement `PartialEq`
note: the foreign item types don't implement required traits for this operation to be valid
  --> $SRC_DIR/std/src/io/error.rs:LL:COL
   |
   = note: not implement `PartialEq`
  --> $SRC_DIR/std/src/thread/mod.rs:LL:COL
   |
   = note: not implement `PartialEq`
help: consider annotating `T1` with `#[derive(PartialEq)]`
   |
LL + #[derive(PartialEq)]
LL | struct T1;
   |
help: consider annotating `T2` with `#[derive(PartialEq)]`
   |
LL + #[derive(PartialEq)]
LL | struct T2;
   |

error: aborting due to 3 previous errors

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