~/talk

Chemanalysis: Dialyzing Elixir

Talkat Code BEAM SF 2019 · 2019-02-28..03-01· [testing]
slides:none on file

Dialyzer catches real bugs in Elixir by inferring success types and comparing them to specs; there are three concrete issues discussed: a spec that claims a boolean but only returns false (fixed by changing generated specs), consolidation rewriting that turned a broad module list into a precise union (fixed in Elixir 1.6), and a guard that calls tuple_size on a map (silenced by marking generated AST, fixed in Elixir 1.8). Covers integrations dialyxir, mix dialyzer and persistent lookup tables (PLTs), warning classes like unmatched_returns and unknown, and practical PLT and warning-filtering tradeoffs.

AI-written summary · about

  1. 0:00Intro
  2. 0:50What is Dialyzing
  3. 1:05Quick Quiz
  4. 1:38Bugs
  5. 2:02Type annotations
  6. 3:51Dialyzing
  7. 6:03Specs
  8. 6:49Unknown
  9. 7:35Unmatched Returns
  10. 9:06Mix Tasks
  11. 9:38What is PLT
  12. 10:36Dialyzing Elixir
  13. 12:23Dialyzing X
  14. 12:57Peelteas
  15. 13:47Filtering warnings
  16. 14:29Drawbacks
  17. 15:09Mix Dialyzer
  18. 15:35Dialyzer
  19. 16:14Code Sample
  20. 16:50Dialyzing Info
  21. 17:18Project Applications
  22. 17:42First bug
  23. 18:07Protocols
  24. 20:05Finding the Implementation
  25. 21:39Finding the Bug
  26. 23:04Consolidation
  27. 24:27Under Specification
  28. 26:21Consolidate
  29. 27:35Guard Test
  30. 27:58Elixir Exception
  31. 29:09Prometheus Elixir Library
  32. 29:41Prometheus Error Macro
  33. 30:36Decompiled Elixir Code
  34. 33:25Generated Code
  35. 34:18Summary
  36. 34:38QA
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.