Predicate Internal::PreCfg::CachedWithCfg::getAnEqualityCheck
Gets an expression that tests whether expression e1
is equal to
expression e2
.
If the returned expression has abstract value v
, then expression e1
is
guaranteed to be equal to e2
, and if the returned expression has abstract
value v.getDualValue()
, then this expression is guaranteed to be
non-equal to e
.
For example, if the expression x != ""
evaluates to false
then the
expression x
is guaranteed to be equal to ""
.
Import path
import semmle.code.csharp.controlflow.Guards
Expr getAnEqualityCheck(Expr e1, AbstractValue v, Expr e2)