CodeQL library for C#
codeql/csharp-all 0.9.0 (changelog, source)

Member predicate ControlFlow::Node::dominates

Holds if this node dominates that node.

That is, all paths reaching that node from some callable entry node (EntryNode) must go through this node.


int M(string s)
    if (s == null)
        throw new ArgumentNullException(nameof(s));
    return s.Length;

The node on line 3 dominates the node on line 5 (all paths from the entry point of M to return s.Length; must go through the null check).

This predicate is reflexive, so for example if (s == null) dominates itself.

predicate dominates(Node that)