Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

dmd.dfa.entry

Entry point into Data Flow Analysis engine.
This engine performs a structural analysis of the code to detect issues like nullability and truthiness.

Design

  • Structural Definition Algorithm: It performs a single forward pass
over the AST (O(1) cost per node), minimizing compilation time.
  • Non-Iterative: Unlike "chaotic iteration" solvers (which can be O(n^2)),
this engine does not loop until convergence. It tries to limit its visitation of each node to once.

See Also:
https://forum.dlang.org/post/xmssfygefvldeiyodfya@forum.dlang.org (Why we should not enable a slow DFA by default)

Source dfa/entry.d