我有一个简单的独立模块,它产生:
elixir impl_bad.ex **(ArgumentError)参数错误
在IEX中:
=> iex Erlang / OTP 23 [erts-11.1] [源代码] [64位] [smp:12:12] [ds:12:12:10] [异步线程:1] [hipe] 交互式长生不老药(1.9 .4)-按Ctrl + C退出(键入h()ENTER获取帮助) iex(1)> c“ impl_bad.ex” ==文件impl_bad.ex中的编译错误== **(ArgumentError)参数错误 ** (ArgumentError)参数错误
编码:
defmodule ImplBad做 高清run_addition_problems(aconfig)做 do_addition_problems(aconfig) 年底 结束
单独将这5行代码放入文件中。
我知道do_addition_problems()不存在,但是我期望行号有未定义的错误。
我从do_addition_problems()存在的项目文件中提取了此代码。
我希望编译器提供更多信息。我必须从大约1k LOC的模块执行“二进制搜索”,以查明此问题。
这是灵丹妙药1.9.4的问题吗?
这是同时使用Erlang/OTP 23
和 使用的问题Elixir 1.9.4
。
花好月圆1.9是旧的比OTP 23,但灵药充分利用了OTP,所以它依赖于从未来的一些警告/消息二郎编译过程中的编译器。
就是说,将OTP降级到该版本Elixir 1.9
已经知道(我相信21很好),或者将Elixir升级到最新版本1.11.1
将解决此问题,从而产生了幻想。
== 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句