dialyxir icon indicating copy to clipboard operation
dialyxir copied to clipboard

Error When Blank Ignore File

Open jherdman opened this issue 3 years ago • 0 comments

Environment

  • Elixir & Erlang/OTP versions (elixir --version):
Erlang/OTP 23 [erts-11.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Elixir 1.10.4 (compiled with Erlang/OTP 23)
  • Which version of Dialyxir are you using? (cat mix.lock | grep dialyxir):
  "dialyxir": {:hex, :dialyxir, "1.0.0", "6a1fa629f7881a9f5aaf3a78f094b2a51a0357c843871b8bc98824e7342d00a5", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "aeb06588145fac14ca08d8061a142d52753dbc2cf7f0d00fc1013f53f8654654"},

Current behavior

If you set up a dialyzer ignore file, but accidentally leave it blank you see the following error:

** (Protocol.UndefinedError) protocol Enumerable not implemented for nil of type Atom
    (elixir 1.10.4) lib/enum.ex:1: Enumerable.impl_for!/1
    (elixir 1.10.4) lib/enum.ex:141: Enumerable.reduce/3
    (elixir 1.10.4) lib/enum.ex:3383: Enum.reduce/3
    lib/dialyxir/formatter.ex:20: Dialyxir.Formatter.format_and_filter/4
    lib/dialyxir/dialyzer.ex:53: Dialyxir.Dialyzer.Runner.run/2
    lib/dialyxir/dialyzer.ex:75: Dialyxir.Dialyzer.dialyze/3
    lib/mix/tasks/dialyzer.ex:267: Mix.Tasks.Dialyzer.run_dialyzer/2
    lib/mix/tasks/dialyzer.ex:199: Mix.Tasks.Dialyzer.run/1

This error is difficult to understand, and does not help identify the root cause.

Expected behavior

A friendly error message to the effect of, "Your dialyzer ignore file doesn't have the correct format. Please see HELPFUL URL for more details."

jherdman avatar Aug 03 '20 19:08 jherdman