rhai
rhai copied to clipboard
Latest rhai crate 1.23.6 won't build
Hi, trying to build rhai v1.23.6 fails with the following message :
$ cargo build
Compiling rhai v1.23.6
error[E0369]: binary operation `==` cannot be applied to type `thin_vec::ThinVec<Stmt>`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/ast/ast.rs:25:5
|
20 | #[derive(Clone, PartialEq)]
| --------- in this derive macro expansion
...
25 | body: ThinVec<Stmt>,
| ^^^^^^^^^^^^^^^^^^^
|
note: an implementation of `PartialEq` might be missing for `Stmt`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/ast/stmt.rs:586:1
|
586 | pub enum Stmt {
| ^^^^^^^^^^^^^ must implement `PartialEq`
help: consider annotating `Stmt` with `#[derive(PartialEq)]`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/ast/stmt.rs:586:1
|
586 + #[derive(PartialEq)]
587 | pub enum Stmt {
|
error[E0369]: binary operation `==` cannot be applied to type `Rc<module::Module>`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/ast/ast.rs:28:5
|
20 | #[derive(Clone, PartialEq)]
| --------- in this derive macro expansion
...
28 | lib: crate::SharedModule,
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
note: an implementation of `PartialEq` might be missing for `module::Module`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/module/mod.rs:624:1
|
624 | pub struct Module {
| ^^^^^^^^^^^^^^^^^ must implement `PartialEq`
help: consider annotating `module::Module` with `#[derive(PartialEq)]`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/module/mod.rs:624:1
|
624 + #[derive(PartialEq)]
625 | pub struct Module {
|
error[E0369]: binary operation `==` cannot be applied to type `Option<Rc<StaticModuleResolver>>`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/ast/ast.rs:31:5
|
20 | #[derive(Clone, PartialEq)]
| --------- in this derive macro expansion
...
31 | pub(crate) resolver: Option<crate::Shared<crate::module::resolvers::StaticModuleResolver>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: an implementation of `PartialEq` might be missing for `StaticModuleResolver`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/module/resolvers/stat.rs:31:1
|
31 | pub struct StaticModuleResolver(BTreeMap<Identifier, SharedModule>);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
help: consider annotating `StaticModuleResolver` with `#[derive(PartialEq)]`
--> /home/abel/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rhai-1.23.6/src/module/resolvers/stat.rs:31:1
|
31 + #[derive(PartialEq)]
32 | pub struct StaticModuleResolver(BTreeMap<Identifier, SharedModule>);
|
For more information about this error, try `rustc --explain E0369`.
error: could not compile `rhai` (lib) due to 3 previous errors
Reproducing
cargo.toml file :
[package]
name = "blabla"
version = "0.1.0"
edition = "2024"
[dependencies]
rhai = "1.23.6"
Rust
Toolchain : nightly-x86_64-unknown-linux-gnu
Compiler : rustc 1.93.0-nightly (adaa83897 2025-10-27)
Note that building from upstream works.
Cargo.toml file :
[package]
name = "blabla"
version = "0.1.0"
edition = "2024"
[dependencies]
rhai = { git = "https://github.com/rhaiscript/rhai.git" }
$ cargo build
Updating git repository `https://github.com/rhaiscript/rhai.git`
Locking 2 packages to latest Rust 1.93.0-nightly compatible versions
Adding rhai v1.23.6 (https://github.com/rhaiscript/rhai.git#6548c2b1)
Adding rhai_codegen v3.1.0 (https://github.com/rhaiscript/rhai.git#6548c2b1)
Compiling libc v0.2.177
Compiling crunchy v0.2.4
Compiling autocfg v1.5.0
Compiling version_check v0.9.5
Compiling tiny-keccak v2.0.2
Compiling proc-macro2 v1.0.103
Compiling cfg-if v1.0.4
Compiling portable-atomic v1.11.1
Compiling quote v1.0.42
Compiling unicode-ident v1.0.22
Compiling getrandom v0.3.4
Compiling zerocopy v0.8.27
Compiling once_cell v1.21.3
Compiling smartstring v1.0.1
Compiling num-traits v0.2.19
Compiling ahash v0.8.12
Compiling rhai v1.23.6 (https://github.com/rhaiscript/rhai.git#6548c2b1)
Compiling static_assertions v1.1.0
Compiling bitflags v2.10.0
Compiling thin-vec v0.2.14
Compiling smallvec v1.15.1
Compiling syn v2.0.110
Compiling getrandom v0.2.16
Compiling const-random-macro v0.1.16
Compiling const-random v0.1.18
Compiling rhai_codegen v3.1.0 (https://github.com/rhaiscript/rhai.git#6548c2b1)
Compiling blabla v0.1.0 (/home/abel/downloads/blabla)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.78s
That is extremely strange as upstream is almost the same as the crate release...
https://github.com/rhaiscript/rhai/blob/main/src/ast/ast.rs#L20
And the source does not derive PartialEq on that line...