CodeQL library for C#
codeql/csharp-all 4.0.1-dev (changelog, source)
Search

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.

Example:

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)