Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix minrust CI #506

Closed
Darksonn opened this issue Aug 23, 2021 · 2 comments · Fixed by #507
Closed

Fix minrust CI #506

Darksonn opened this issue Aug 23, 2021 · 2 comments · Fixed by #507

Comments

@Darksonn
Copy link
Contributor

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/git.luolix.top-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/git.luolix.top-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/git.luolix.top-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/git.luolix.top-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/git.luolix.top-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/git.luolix.top-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/git.luolix.top-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
Copy link
Member

taiki-e commented Aug 23, 2021

It's better to use +stable for cargo-hack installation or install cargo-hack from GitHub release (like tokio-rs/tracing#1100).

@Darksonn
Copy link
Contributor Author

That sounds like a good approach.

bors bot added a commit to crossbeam-rs/crossbeam that referenced this issue Dec 31, 2021
760: Revert "Disable feature check on MSRV" r=taiki-e a=taiki-e

This reverts commit bce74ca.

cargo-hack fixed the problem in [0.5.9](https://github.com/taiki-e/cargo-hack/releases/tag/v0.5.9).

761: Make installation of cargo-hack faster and robust r=taiki-e a=taiki-e

Use [taiki-e/install-action](https://github.com/taiki-e/install-action) to install prebuilt binaries. This makes the installation faster and may avoid the impact of [problems caused by upstream changes](tokio-rs/bytes#506).

Co-authored-by: Taiki Endo <te316e89@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants