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

Client Build problem #43

Closed
sl1ms opened this issue Dec 6, 2022 · 2 comments
Closed

Client Build problem #43

sl1ms opened this issue Dec 6, 2022 · 2 comments

Comments

@sl1ms
Copy link

sl1ms commented Dec 6, 2022

Compiling detour v0.8.0 (https://github.com/darfink/detour-rs?rev=3b6f17a#3b6f17a8)
error[E0059]: type parameter to bare Fn trait must be a tuple
--> C:\Users\Станислав.cargo\git\checkouts\detour-rs-497fa4e2739f3073\3b6f17a\src\detours\statik.rs:106:8
|
106 | D: Fn<T::Arguments, Output = T::Output> + Send + 'static,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait Tuple is not implemented for <T as Function>::Arguments
|
note: required by a bound in Fn
help: consider further restricting the associated type
|
106 | D: Fn<T::Arguments, Output = T::Output> + Send + 'static, ::Arguments: Tuple
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error[E0059]: type parameter to bare Fn trait must be a tuple
--> C:\Users\Станислав.cargo\git\checkouts\detour-rs-497fa4e2739f3073\3b6f17a\src\detours\statik.rs:157:8
|
157 | C: Fn<T::Arguments, Output = T::Output> + Send + 'static,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait Tuple is not implemented for <T as Function>::Arguments
|
note: required by a bound in Fn
help: consider further restricting the associated type
|
157 | C: Fn<T::Arguments, Output = T::Output> + Send + 'static, ::Arguments: Tuple
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For more information about this error, try rustc --explain E0059.
error: could not compile detour due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

@sl1ms sl1ms closed this as completed Dec 7, 2022
@TemaSM
Copy link

TemaSM commented Dec 9, 2022

For those who also facing same problem:

  1. Install the Rust version of November 05, 2022:
    rustup toolchain install nightly-2022-11-06-i686
  2. Run the build:
    cargo +nightly-2022-11-06-i686 build --release
    Finished

Why did this work?
On November 6, Rust's contributors made commit to the master branch, that affects how the compiler handles syntax:
rust-lang/rust@7eef946
This commit went to toolchain-version nightly-2022-11-07-i686, which means that since November 6 this samp-cef stopped building with versions of Rust newer than 2022-11-06.
After installing the correct version (command above), we switched to the version of Rust the day before this commit and safely compiled what we needed without any changes to the code.

Why did this happen?
Because the sources of the detours library (which is a dependency) uses outdated syntax, so that the Rust compiler showed us an error during compile.
Related: darfink/detour-rs#39

@GeneralZero
Copy link

GeneralZero commented Dec 12, 2022

Just an update to this rustup will automatically get the correct architecture you need. So you can install the nightly version like this.
rustup toolchain install nightly-2022-11-06

Specifically specifying the architecture broke another part of my code. But will build with
cargo +nightly-2022-11-06 build

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

No branches or pull requests

3 participants