1901
return expr[0];
1902
}
1904
>
// eliminate duplicate terms
1905
>
for (let i = 1; i < expr.length; i++) {
1906
>
if (expr[i - 1].equals(expr[i])) {
1907
expr.splice(i, 1);
1908
i--;
1909
}
1911
>
1912
>
if (expr.length === 1) {
1913
return expr[0];
1914
}
1916
>
// resolve true OR expressions
1917
>
if (extraRedundantCheck) {
1918
>
for (let i = 0; i < expr.length; i++) {
1919
>
for (let j = i + 1; j < expr.length; j++) {
1920
>
if (expr[i].negate().equals(expr[j])) {
1921
// A || !A case
1922
return ContextKeyTrueExpr.INSTANCE;
1923
}
1925
}
1926