我有一个伞式应用程序,我在其中使用名为 ETS 的依赖项。此依赖项有一个名为
set_options
的类型,我在一些规范中使用它。
代码工作正常,但透析器抱怨。即:
lib/web_interface/persistence.ex:11:20:unknown_type
Unknown type: ETS.set_options/0.
________________________________________________________________________________
lib/web_interface/persistence.ex:11:65:unknown_type
Unknown type: ETS.t/0.
这会导致大量级联错误。
为了尝试解决此问题,我将以下内容添加到我的 root
mix.exs
文件(来自伞应用程序的文件,而不是来自子应用程序的文件):
def project,
do: [
apps_path: "apps",
version: "2.1.7",
start_permanent: Mix.env() == :prod,
deps: deps(),
dialyzer: [
plt_add_deps: :app_direct,
plt_add_apps: [
:ets
],
plt_core_path: "plts",
plt_local_path: "plts"
]
]
然后运行:
mix dialyzer --plt
mix dialyzer
这不起作用,输出是一样的。
然后我尝试将其添加到相关子应用程序的
mix.exs
(与之前的更改一起):
def application do
[
mod: {WebInterface.Application, []},
extra_applications: [:logger, :ets]
]
end
不幸的是,没有任何效果,我仍然遇到相同的透析器错误。
如何修复透析器以便它识别我的依赖项中的类型?