1858
1859
private static _normalizeArr(arr: ReadonlyArray<ContextKeyExpression | null | undefined>, negated: ContextKeyExpression | null, extraRedundantCheck: boolean): ContextKeyExpression | undefined {
1861
>
let hasFalse = false;
1862
>
1863
>
if (arr) {
1864
>
for (let i = 0, len = arr.length; i < len; i++) {
1865
>
const e = arr[i];
1866
>
if (!e) {
1867
continue;
1868
}
1870
>
if (e.type === ContextKeyExprType.False) {
1871
// anything || false ==> anything
1872
hasFalse = true;
1873
continue;
1874
}
1876
>
if (e.type === ContextKeyExprType.True) {
1877
// anything || true ==> true
1878
return ContextKeyTrueExpr.INSTANCE;
1879
}
1881
>
if (e.type === ContextKeyExprType.Or) {
1882
expr = expr.concat(e.expr);
1883
continue;
1884
}
1886
>
expr.push(e);
1887
>
}
1888
>
1889
>
if (expr.length === 0 && hasFalse) {
1890
return ContextKeyFalseExpr.INSTANCE;
1891
}
1893
>
expr.sort(cmp);
1894
>
}
1895
>
1896
>
if (expr.length === 0) {
1897
return undefined;
1898
}
1900
>
if (expr.length === 1) {
1901
return expr[0];
1902
}