gpt4 book ai didi

elixir - 如何修复新 Mix.Tasks 的 Dialyzer "Callback info about the ' .... .' behaviour is not available"错误

转载 作者:行者123 更新时间:2023-12-02 20:34:38 26 4
gpt4 key购买 nike

我在/lib/mix/tasks/start.ex 中为我的项目创建了新的 Mix.Task

defmodule Mix.Tasks.Start do
use Mix.Task

def run(_), do: IO.puts("Hello, World!")
end

现在,它可以从控制台运行,如下所示:
混合开始

但我收到 Dialyzer 错误,有关“Elixir.Mix.Task”行为的回调信息不可用。这是什么意思以及如何解决这个问题?

最佳答案

看起来我没有 Persistent Lookup Table为透析器添加了 (PLT) 选项。在我的例子中,为了使透析器可以使用“Elixir.Mix.Task”行为,我必须更新 mix.exs 文件并定义透析器应为哪些模块创建 PLT。

  def project do
[
app: :some_app,
version: "0.1.0",
elixir: "~> 1.6",
start_permanent: Mix.env() == :prod,
deps: deps(),
# Added following line
dialyzer: [plt_add_apps: [:mix]]
]
end

通过 dialyxir 添加透析器在同一个 mix.exs 文件中,如下所示

  defp deps do
[
{:dialyxir, "~> 0.5", only: [:dev], runtime: false}
]
end

混合 deps.get、deps.compile
您的透析器应该停止提示:
混合透析器

关于elixir - 如何修复新 Mix.Tasks 的 Dialyzer "Callback info about the ' .... .' behaviour is not available"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com