KernelFreeze / Litecraft

Open source, clean room implementation of Minecraft Client
MIT License
138 stars 6 forks source link

Dependency build failure #21

Open PureTryOut opened 5 years ago

PureTryOut commented 5 years ago

Using the latest nightly (just updated a few minutes before making this issue) some dependency fails to compile. This seems to happen in rhai-0.9.0 but I'm not entirely sure.

Expected Behavior ๐Ÿค”

Successful compilation.

Current Behavior ๐Ÿ˜”

~/Git/litecraft  master โœ”                                                                                                       31d  
โ–ถ cargo run    
   Compiling cc v1.0.29
   Compiling arrayvec v0.4.10
   Compiling semver-parser v0.7.0
   Compiling nodrop v0.1.13
   [ ... ]
   Compiling rhai v0.9.0
   [ ... ]
error[E0034]: multiple applicable items in scope
  --> /home/bart/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-0.9.0/src/any.rs:40:26
   |
40 |         let boxed = self.type_id();
   |                          ^^^^^^^ multiple `type_id` found
   |
note: candidate #1 is defined in the trait `any::Any`
  --> /home/bart/.cargo/registry/src/github.com-1ecc6299db9ec823/rhai-0.9.0/src/any.rs:5:5
   |
5  |     fn type_id(&self) -> TypeId;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = help: to disambiguate the method call, write `any::Any::type_id(&self)` instead
note: candidate #2 is defined in the trait `std::any::Any`
   = help: to disambiguate the method call, write `std::any::Any::type_id(&self)` instead

   [ ... ]
error: aborting due to previous error

For more information about this error, try `rustc --explain E0034`.
error: Could not compile `rhai`.
warning: build failed, waiting for other jobs to finish...
error: build failed

Steps to Reproduce ๐Ÿ˜ฑ

  1. Update your Rust to the latest nighly (can be done easily via Rustup)
  2. Run cargo build or cargo run
  3. ???
  4. Build failure

Context (Environment) ๐Ÿคจ

I'm just trying to compile the project for the first time. This is a clean git clone.

Mis012 commented 5 years ago

I can reproduce this issue as well ;)

Mis012 commented 5 years ago

@PureTryOut I have no Rust experience, but this compiles:

let boxed = self.type_id(); -- vvv --- let boxed = Any::type_id(self);

KernelFreeze commented 5 years ago

Thanks for reporting! We will upload a fix soon

iceiix commented 3 years ago

0.9.0 is a very old version of rhai (an embedded scripting language and evaluation engine for Rust) by now, this appears to be fixed by rhai 0.19.8, updating in Cargo.toml:

-rhai = "0.9.0"
+rhai = "0.19.8"

though then compilation fails with https://github.com/KernelFreeze/Litecraft/issues/23