Il modulo Elixir Simple produce solo "Argument Error"
Ho un modulo semplice e autonomo che produce:
elisir impl_bad.ex ** (ArgumentError) errore dell'argomento
In iex:
=> iex Erlang / OTP 23 [erts-11.1] [sorgente] [64 bit] [smp: 12: 12] [ds: 12: 12: 10] [thread asincroni: 1] [hipe] Elisir interattivo (1.9.4): premi Ctrl + C per uscire (digita h () INVIO per aiuto) iex (1)> c "impl_bad.ex" == Errore di compilazione nel file impl_bad.ex == ** (ArgumentError) errore dell'argomento ** (ArgumentError) errore dell'argomento
Il codice:
defmodule ImplBad do
def run_addition_problems (aconfig) do
do_addition_problems (aconfig)
fine
fine
Inserisci questo codice di 5 righe in un file da solo.
So che do_addition_problems () non esiste ma mi aspetterei un errore indefinito con un numero di riga.
Ho estratto questo codice da un file di progetto in cui esiste do_addition_problems ().
Mi aspetto un po 'più di informazioni dal compilatore. Ho dovuto eseguire una "ricerca binaria" da un modulo di circa 1k LOC per individuare questo problema.
È un problema con elixir 1.9.4?
Risposte
Questo è un problema di utilizzo Erlang/OTP 23 e Elixir 1.9.4 simultaneamente.
Elixir 1.9 è più vecchio di OTP 23 , ma elixir sfrutta appieno OTP, quindi si basa su alcuni avvisi / messaggi provenienti dal compilatore erlang durante la compilazione.
Detto questo, il downgrade di OTP alla versione Elixir 1.9è a conoscenza ( 21 andrebbe bene, credo) o l' aggiornamento di Elixir alla recente 1.11.1risolverebbe il problema producendo fantasia
== Compilation error in file /tmp/test.ex ==
** (CompileError) /tmp/test.ex:3: undefined function do_addition_problems/1
(elixir 1.11.1) src/elixir_locals.erl:114: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3
(stdlib 3.13.2) erl_eval.erl:680: :erl_eval.do_apply/6