rustler icon indicating copy to clipboard operation
rustler copied to clipboard

Add support for path dependencies

Open flupke opened this issue 9 months ago • 0 comments

What changes

Fix a bug when adding a path dependency to a rustler Cargo.toml that gives this cryptic error:

  == Compilation error in file lib/multiplayer_backend/project_mutator.ex ==
  ** (Protocol.UndefinedError) protocol Enumerable not implemented for nil of type Atom
      (elixir 1.16.1) lib/enum.ex:1: Enumerable.impl_for!/1
      (elixir 1.16.1) lib/enum.ex:166: Enumerable.reduce/3
      (elixir 1.16.1) lib/enum.ex:4399: Enum.filter/2
      (rustler 0.32.1) lib/rustler/compiler/config.ex:130: Rustler.Compiler.Config.gather_local_crates/4
      (rustler 0.32.1) lib/rustler/compiler/config.ex:108: Rustler.Compiler.Config.external_resources/3
      (rustler 0.32.1) lib/rustler/compiler/config.ex:79: Rustler.Compiler.Config.build/1
      (rustler 0.32.1) lib/rustler/compiler.ex:8: Rustler.Compiler.compile_crate/3
      lib/multiplayer_backend/project_mutator.ex:2: (module)

Somehow this dependency slips nil's in the specs, so we just filter them out.

How to test

Clone this repository and try to build it to reproduce the error. Uncomment the rustler dependency pointing to this PR to fix.

flupke avatar Apr 29 '24 18:04 flupke