~/talk

Data Flow Analysis in IntelliJ IDEA: How the IDE Perceives Your Code

slides:none on file

IntelliJ runs an on‑the‑fly abstract interpreter over a stack-based IR to detect constant conditions, failing casts and likely NPEs by tracking value ranges, modular remainders and type/null states. It forks and later joins execution states, uses widening for loops, and applies range and modular arithmetic plus method handlers and contracts to prove impossibilities. Lambdas and streams get rewritten by inliners desugar streams, analysis is mostly intraprocedural, and state explosion and imperfect nullness lattice cause the main false positives.

AI-written summary · about

  1. 0:00Data flow analysis intro
  2. 2:45Tagir Valeev’s background and role at JetBrains
  3. 3:51Static analysis basics
  4. 5:17Constant conditions inspection
  5. 7:26Abstract interpretation
  6. 10:14Abstract values and range tracking
  7. 13:02Variable tracking and state splitting
  8. 16:36State merging and complex conditions
  9. 19:25Loop limitations and state explosion
  10. 21:11Type system and tracking
  11. 22:59Nullness tracking challenges
  12. 26:13Nullability inference
  13. 28:40Variable relations tracking
  14. 30:06Fields and side effects
  15. 33:32Local objects and arrays
  16. 36:02Special fields and contracts
  17. 38:32Method handlers support
  18. 39:14Lambdas and streams
  19. 41:42Inspections integration
  20. 43:30Quick fixes and completion
  21. 45:14Debugger integration
  22. 46:17Summary and benefits
  23. 47:20Q&A
~/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.