/eqwalizer

A type-checker for Erlang

Primary LanguageScalaApache License 2.0Apache-2.0

eqWAlizer

A type-checker for Erlang.

eqWAlizer logo

Using it with rebar3 projects

eqWAlizer is integrated and distributed with ELP (Erlang Language Platform).

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Add eqwalizer_support dependency to your rebar3 project definition (see below)
  4. From the project directory run:
  • elp eqwalize <module> to type-check a single module
  • elp eqwalize-all to type-check all src modules in the project

Adding eqwalizer_support:

{deps, [
  {eqwalizer_support,
    {git_subdir,
        "https://github.com/whatsapp/eqwalizer.git",
        {branch, "main"},
        "eqwalizer_support"}}
]}.

Using it with non-rebar projects

  1. Use OTP 26 or higher.
  2. Install ELP.
  3. Write a project.json file describing your project.
  4. From the project directory, assuming your .json file is called project.json run:
  • elp eqwalize <module> --project project.json to type-check a single module
  • elp eqwalize-all --project project.json to type-check all src modules in the project

FAQ

Please refer to the FAQ document for answers to some common questions, including:

  • What's the difference between eqWAlizer and Dialyzer?
  • Why not extend Dialyzer, rather than creating a new tool?
  • What about Elixir?

Where can I learn more about eqWAlizer, its technical principles, its relation to dialyzer and elixir support feasibility?

here.

License

eqWAlizer is Apache licensed.