Fix minrust CI
Darksonn opened this issue · 2 comments
Darksonn commented
Due to a change in the nix crate, our minrust check in CI no longer works. This is because the minrust check uses cargo hack
to try all the feature flag combinations, but cargo-hack
depends on nix
.
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:445:35
|
445 | pub fn set_sigev_notify(self: &mut Pin<Box<Self>>,
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:502:25
|
502 | pub fn cancel(self: &mut Pin<Box<Self>>) -> Result<AioCancelStat> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:566:24
|
566 | pub fn error(self: &mut Pin<Box<Self>>) -> Result<()> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:579:24
|
579 | pub fn fsync(self: &mut Pin<Box<Self>>, mode: AioFsyncMode) -> Result<()> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:629:23
|
629 | pub fn read(self: &mut Pin<Box<Self>>) -> Result<()> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:666:29
|
666 | pub fn aio_return(self: &mut Pin<Box<Self>>) -> Result<isize> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0658]: `&mut std::pin::Pin<std::boxed::Box<sys::aio::AioCb<'a>>>` cannot be used as the type of `self` without the `arbitrary_self_types` feature
--> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.22.1/src/sys/aio.rs:679:24
|
679 | pub fn write(self: &mut Pin<Box<Self>>) -> Result<()> {
| ^^^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44874
= help: consider changing to `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error: aborting due to 7 previous errors
taiki-e commented
It's better to use +stable
for cargo-hack installation or install cargo-hack from GitHub release (like tokio-rs/tracing#1100).
Darksonn commented
That sounds like a good approach.