in atlas-lwcapi/src/main/scala/com/netflix/atlas/lwcapi/ExpressionSplitter.scala [138:156]
private def simplify(query: Query): Query = {
val newQuery = query match {
case Query.And(Query.True, q) => simplify(q)
case Query.And(q, Query.True) => simplify(q)
case Query.Or(Query.True, _) => Query.True
case Query.Or(_, Query.True) => Query.True
case Query.And(Query.False, _) => Query.False
case Query.And(_, Query.False) => Query.False
case Query.Or(Query.False, q) => simplify(q)
case Query.Or(q, Query.False) => simplify(q)
case Query.And(q1, q2) => Query.And(simplify(q1), simplify(q2))
case Query.Or(q1, q2) => Query.Or(simplify(q1), simplify(q2))
case Query.Not(Query.True) => Query.True // Not(True) needs to remain True
case Query.Not(Query.False) => Query.True
case Query.Not(q) => Query.Not(simplify(q))
case q => q
}
if (newQuery != query) simplify(newQuery) else newQuery
}