Невозможно выполнить какую-либо команду микширования - ** (FunctionClauseError) нет совпадения предложения функции в IO.chardata_to_string / 1 - PullRequest
0 голосов
/ 07 марта 2019

У меня точно такой же код и версии на моем локальном Mac, и я могу отлично выполнять команды mix.Я вытащил совершенно новую копию своего проекта, чтобы убедиться.Нет каталога _build, deps или tmp.Эта ошибка не дает никакой информации о проблеме.Что может происходить или что я могу посмотреть, чтобы решить эту проблему?

Проблема в Ubuntu 18.04 LTS.Я пробовал несколько версий erlang / elixir, и все они приводят к одному и тому же выводу ниже.

root@instance-1:/srv/zipbooks/phoenix-api# elixir -v
Erlang/OTP 21 [erts-10.2.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Elixir 1.8.1 (compiled with Erlang/OTP 21)
root@instance-1:/srv/zipbooks/phoenix-api# mix compile
** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1    

    The following arguments were given to IO.chardata_to_string/1:

        # 1
        nil

    Attempted function clauses (showing 2 out of 2):

        def chardata_to_string(string) when is_binary(string)
        def chardata_to_string(list) when is_list(list)

    (elixir) lib/io.ex:461: IO.chardata_to_string/1
    (elixir) lib/path.ex:512: Path.join/2
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
    (stdlib) erl_eval.erl:240: :erl_eval.expr/5
    (stdlib) erl_eval.erl:232: :erl_eval.expr/5
    (stdlib) erl_eval.erl:233: :erl_eval.expr/5
    (stdlib) erl_eval.erl:888: :erl_eval.expr_list/6

1 Ответ

2 голосов
/ 07 марта 2019

Проблема заключается в том, что значение nil передается в IO.chardata_to_string. Если вы запустите iex и введите:

IO.chardata_to_string(nil)

вы получите ту же ошибку. Теперь, если вы введете что-то вроде:

IO.chardata_to_string("my string")

вы получите ожидаемый результат.

Не видя ваш код, я не могу сказать, почему вы получаете значение nil, которое передается в IO.chardata_to_string, но, похоже, это проблема.

Надеюсь, это поможет.

Ура!

...