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

ch2-mandelbrot: could not compile num-bigint (lib) due to 4 previous errors #115

Open
honsour72 opened this issue Jan 22, 2024 · 5 comments

Comments

@honsour72
Copy link

Hello there, I just want to run mandelbrot code but after I did cargo run I get this output:

   Compiling num-bigint v0.3.0
error[E0308]: mismatched types                                                                                                                                                                       
    --> C:\Users\user\.cargo\registry\src\index.crates.io-6f17d22bba15001f\num-bigint-0.3.0\src\biguint.rs:198:19
     |
198  |         .div_ceil(&big_digit::BITS.into())
     |          -------- ^^^^^^^^^^^^^^^^^^^^^^^ expected `u64`, found `&_`
     |          |
     |          arguments to this method are incorrect
     |
     = note:   expected type `u64`
             found reference `&_`
note: method defined here
    --> C:\Users\user\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\num\mod.rs:1166:5
     |
1166 | /     uint_impl! {
1167 | |         Self = u64,
1168 | |         ActualT = u64,
1169 | |         SignedT = i64,
...    |
1183 | |         bound_condition = "",
1184 | |     }
     | |_____^
     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the borrow
     |
198  -         .div_ceil(&big_digit::BITS.into())
198  +         .div_ceil(big_digit::BITS.into())
     |

error[E0308]: mismatched types                                                                                                                                                                       
    --> C:\Users\user\.cargo\registry\src\index.crates.io-6f17d22bba15001f\num-bigint-0.3.0\src\biguint.rs:1700:50
     |
1700 |             let root_scale = extra_bits.div_ceil(&n64);
     |                                         -------- ^^^^ expected `u64`, found `&u64`
     |                                         |
     |                                         arguments to this method are incorrect
     |
note: method defined here
    --> C:\Users\user\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\num\mod.rs:1166:5
     |
1166 | /     uint_impl! {
1167 | |         Self = u64,
1168 | |         ActualT = u64,
1169 | |         SignedT = i64,
...    |
1183 | |         bound_condition = "",
1184 | |     }
     | |_____^
     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the borrow
     |
1700 -             let root_scale = extra_bits.div_ceil(&n64);
1700 +             let root_scale = extra_bits.div_ceil(n64);
     |

error[E0308]: mismatched types
    --> C:\Users\user\.cargo\registry\src\index.crates.io-6f17d22bba15001f\num-bigint-0.3.0\src\biguint.rs:2119:19
     |
2119 |         .div_ceil(&u64::from(bits))
     |          -------- ^^^^^^^^^^^^^^^^ expected `u64`, found `&u64`
     |          |
     |          arguments to this method are incorrect
     |
note: method defined here
    --> C:\Users\user\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\num\mod.rs:1166:5
     |
1166 | /     uint_impl! {
1167 | |         Self = u64,
1168 | |         ActualT = u64,
1169 | |         SignedT = i64,
...    |
1183 | |         bound_condition = "",
1184 | |     }
     | |_____^
     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the borrow
     |
2119 -         .div_ceil(&u64::from(bits))
2119 +         .div_ceil(u64::from(bits))
     |

error[E0308]: mismatched types
    --> C:\Users\user\.cargo\registry\src\index.crates.io-6f17d22bba15001f\num-bigint-0.3.0\src\biguint.rs:2147:19
     |
2147 |         .div_ceil(&u64::from(bits))
     |          -------- ^^^^^^^^^^^^^^^^ expected `u64`, found `&u64`
     |          |
     |          arguments to this method are incorrect
     |
note: method defined here
    --> C:\Users\user\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\num\mod.rs:1166:5
     |
1166 | /     uint_impl! {
1167 | |         Self = u64,
1168 | |         ActualT = u64,
1169 | |         SignedT = i64,
...    |
1183 | |         bound_condition = "",
1184 | |     }
     | |_____^
     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the borrow
     |
2147 -         .div_ceil(&u64::from(bits))
2147 +         .div_ceil(u64::from(bits))
     |

For more information about this error, try `rustc --explain E0308`.                                                                                                                                  
error: could not compile `num-bigint` (lib) due to 4 previous errors

I don't understand which line of my code provides this error 🤷‍♂️

I use RustRover from JetBrains and attach Cargo.toml:

[package]
name = "ch2-mandelbrot"
version = "0.1.0"
authors = ["Tim McNamara <[email protected]>"]
edition = "2018"

[dependencies]
num = "0.3"

Everything I did before are:

  1. cargo install cargo-edit
  2. cargo add num
  3. cargo run
@ruokeqx
Copy link

ruokeqx commented Feb 10, 2024

solved by command like below

cargo update
cargo run

@honsour72
Copy link
Author

Resolved, thx, @ruokeqx

@jamiebill
Copy link

Updating cargo and re-running worked for me too! Thanks, @ruokeqx

@a2800276
Copy link

a2800276 commented Aug 4, 2024

Ran into the same issue... It seems strange to me that this could happen at all, isn't Cargo supposed to ensure proper versions and point releases shouldn't introduce breaking changes?

@alexkingnz
Copy link

I encountered the same issue.

It seemed like there was a bug in num_bigint? cargo update resulted in Updating num-bigint v0.3.0 -> v0.3.3 (latest: v0.4.6) (and other num crate updates). Perhaps a version bump is required in Cargo.toml.

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

5 participants