1719
break;
1720
}
1722
>
expr.pop();
1723
>
1724
>
// pop the second to last element
1725
>
const secondToLastElement = expr.pop()!;
1726
>
1727
>
const isFinished = (expr.length === 0);
1728
>
1729
>
// distribute `lastElement` over `secondToLastElement`
1730
>
const resultElement = ContextKeyOrExpr.create(
1731
>
lastElement.expr.map(el => ContextKeyAndExpr.create([el, secondToLastElement], null, extraRedundantCheck)),
1732
>
null,
1733
>
isFinished
1734
>
);
1735
>
1736
>
if (resultElement) {
1737
>
expr.push(resultElement);
1738
>
expr.sort(cmp);
1739
>
}
1740
}
1741
1742
if (expr.length === 1) {
1744
>
}
1745
1746
// resolve false AND expressions