name: dialyzer-configuration description: Use when configuring Dialyzer for Erlang/Elixir type checking and static analysis. allowed-tools: []
Dialyzer Configuration
Dialyzer is a static analysis tool for Erlang and Elixir that identifies software discrepancies such as type errors, unreachable code, and unnecessary tests.
Configuration Files
dialyzer.ignore-warnings
# Ignore specific warnings
lib/my_module.ex:42:pattern_match_cov
.dialyzer_ignore.exs
[
{"lib/generated_code.ex", :no_return},
{~r/lib\/legacy\/.*/, :unknown_function}
]
mix.exs Configuration
def project do
[
app: :my_app,
dialyzer: [
plt_add_apps: [:mix, :ex_unit],
plt_core_path: "priv/plts",
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
flags: [:error_handling, :underspecs, :unmatched_returns],
ignore_warnings: ".dialyzer_ignore.exs",
list_unused_filters: true
]
]
end
Common Configuration Options
PLT Management
plt_add_apps: Additional applications to include in PLTplt_core_path: Directory for core PLT filesplt_file: Custom PLT file locationplt_add_deps: Include dependencies (:app_tree,:apps_direct,:transitive)
Analysis Flags
:error_handling- Check error handling:underspecs- Warn on under-specified functions:unmatched_returns- Warn on unmatched return values:unknown- Warn on unknown functions/types:overspecs- Warn on over-specified functions
Filter Options
ignore_warnings: File with warning patterns to ignorelist_unused_filters: Show unused ignore patterns
Best Practices
- Incremental PLT Building: Use project-specific PLTs to speed up analysis
- Gradual Adoption: Start with subset of checks, expand over time
- CI Integration: Run Dialyzer in continuous integration
- Type Specs: Add comprehensive @spec annotations
- Warning Management: Document intentional ignores
Common Patterns
Conditional Analysis
if Mix.env() in [:dev, :test] do
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
end
Custom Check Script
#!/bin/bash
mix dialyzer --format github
GitHub Actions Integration
- name: Run Dialyzer
run: mix dialyzer --format github
Related skills
Docker Compose Architect
DevOps
Designs optimized Docker Compose configurations.
Claude CodeCopilotadvanced
430
156
1,409
Incident Postmortem Writer
DevOps
Writes structured and blameless incident postmortem reports.
claudeCursorWindsurfintermediate
141
43
427
Runbook Creator
DevOps
Creates clear operational runbooks for common DevOps procedures.
claudeCursorWindsurfintermediate
108
32
350