|
1 | 1 | import {expectType} from 'tsd'; |
2 | 2 | import type {Or} from '../source/or.d.ts'; |
3 | 3 |
|
| 4 | +declare const boolean: boolean; |
| 5 | + |
4 | 6 | expectType<Or<true, true>>(true); |
5 | 7 | expectType<Or<true, false>>(true); |
6 | 8 | expectType<Or<false, true>>(true); |
7 | 9 | expectType<Or<false, false>>(false); |
8 | 10 |
|
9 | 11 | expectType<Or<true, boolean>>(true); |
10 | 12 | expectType<Or<boolean, true>>(true); |
11 | | -expectType<Or<false, boolean>>({} as boolean); |
12 | | -expectType<Or<boolean, false>>({} as boolean); |
13 | | -expectType<Or<boolean, boolean>>({} as boolean); |
| 13 | +expectType<Or<false, boolean>>(boolean); |
| 14 | +expectType<Or<boolean, false>>(boolean); |
| 15 | +expectType<Or<boolean, boolean>>(boolean); |
14 | 16 |
|
| 17 | +// Boundary cases |
15 | 18 | expectType<Or<true, any>>(true); |
16 | 19 | expectType<Or<any, true>>(true); |
17 | | -expectType<Or<false, any>>({} as boolean); |
18 | | -expectType<Or<any, false>>({} as boolean); |
19 | | -expectType<Or<boolean, any>>({} as boolean); |
20 | | -expectType<Or<any, boolean>>({} as boolean); |
21 | | -expectType<Or<any, any>>({} as boolean); |
| 20 | +expectType<Or<false, any>>(boolean); |
| 21 | +expectType<Or<any, false>>(boolean); |
| 22 | +expectType<Or<boolean, any>>(boolean); |
| 23 | +expectType<Or<any, boolean>>(boolean); |
| 24 | +expectType<Or<any, any>>(boolean); |
22 | 25 |
|
23 | 26 | expectType<Or<true, never>>(true); |
24 | 27 | expectType<Or<never, true>>(true); |
25 | 28 | expectType<Or<false, never>>(false); |
26 | 29 | expectType<Or<never, false>>(false); |
27 | | -expectType<Or<boolean, never>>({} as boolean); |
28 | | -expectType<Or<never, boolean>>({} as boolean); |
| 30 | +expectType<Or<boolean, never>>(boolean); |
| 31 | +expectType<Or<never, boolean>>(boolean); |
29 | 32 | expectType<Or<never, never>>(false); |
0 commit comments