rustler
rustler copied to clipboard
Add support for path dependencies
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.