Я начал использовать Dialyzer (dialyxir 1.0.0-rc.6) в своем зонтичном проекте на базе Phoenix 1.4.
Когда я впервые запустил mix dialyzer
, я получил это предупреждение.
apps/my_app/lib/my_app_web/gettext.ex:1:pattern_match_cov
The pattern
%{}
can never match since previous clauses completely cover the type
%{:count => _, _ => _}
Вот содержимое этого файла (gettext.ex
):
defmodule MyProject.MyAppWeb.Gettext do
@moduledoc """
(*snip*)
"""
use Gettext, otp_app: :my_app
end
Я его не трогал.Как я могу это исправить или подавить предупреждения?
[ОБНОВЛЕНИЕ]
20 февраля 2018 года я обнаружил, что эта проблема закрыта:
https://github.com/elixir-lang/gettext/issues/115
Iподтвердил, что вновь созданное приложение Phoenix не выдает предупреждения диализатора.Я также подтвердил другой (недавно созданный) проект зонтика Phoenix.
Я не нашел никакого решения для своего существующего проекта.
[ОБНОВЛЕНИЕ 2]
Я нашел, каквоспроизведите мою проблему.
Недавно созданное приложение не предупредит вас, но предупредит вас, если оно содержит данные перевода, которые на самом деле требуют интерполяции.
См. Мой комментарий к проблеме github для получения дополнительной информации:
https://github.com/elixir-lang/gettext/issues/115#issuecomment-491591307