|
1 |
| -=== tests/cases/compiler/bigintIndex.ts === |
| 1 | +=== tests/cases/compiler/a.ts === |
2 | 2 | interface BigIntIndex<E> {
|
3 |
| ->BigIntIndex : Symbol(BigIntIndex, Decl(bigintIndex.ts, 0, 0)) |
4 |
| ->E : Symbol(E, Decl(bigintIndex.ts, 0, 22)) |
| 3 | +>BigIntIndex : Symbol(BigIntIndex, Decl(a.ts, 0, 0)) |
| 4 | +>E : Symbol(E, Decl(a.ts, 0, 22)) |
5 | 5 |
|
6 | 6 | [index: bigint]: E; // should error
|
7 |
| ->index : Symbol(index, Decl(bigintIndex.ts, 1, 5)) |
8 |
| ->E : Symbol(E, Decl(bigintIndex.ts, 0, 22)) |
| 7 | +>index : Symbol(index, Decl(a.ts, 1, 5)) |
| 8 | +>E : Symbol(E, Decl(a.ts, 0, 22)) |
9 | 9 | }
|
10 | 10 |
|
11 | 11 | const arr: number[] = [1, 2, 3];
|
12 |
| ->arr : Symbol(arr, Decl(bigintIndex.ts, 4, 5)) |
| 12 | +>arr : Symbol(arr, Decl(a.ts, 4, 5)) |
13 | 13 |
|
14 | 14 | let num: number = arr[1];
|
15 |
| ->num : Symbol(num, Decl(bigintIndex.ts, 5, 3)) |
16 |
| ->arr : Symbol(arr, Decl(bigintIndex.ts, 4, 5)) |
| 15 | +>num : Symbol(num, Decl(a.ts, 5, 3)) |
| 16 | +>arr : Symbol(arr, Decl(a.ts, 4, 5)) |
17 | 17 |
|
18 | 18 | num = arr["1"];
|
19 |
| ->num : Symbol(num, Decl(bigintIndex.ts, 5, 3)) |
20 |
| ->arr : Symbol(arr, Decl(bigintIndex.ts, 4, 5)) |
| 19 | +>num : Symbol(num, Decl(a.ts, 5, 3)) |
| 20 | +>arr : Symbol(arr, Decl(a.ts, 4, 5)) |
21 | 21 |
|
22 | 22 | num = arr[1n]; // should error
|
23 |
| ->num : Symbol(num, Decl(bigintIndex.ts, 5, 3)) |
24 |
| ->arr : Symbol(arr, Decl(bigintIndex.ts, 4, 5)) |
| 23 | +>num : Symbol(num, Decl(a.ts, 5, 3)) |
| 24 | +>arr : Symbol(arr, Decl(a.ts, 4, 5)) |
25 | 25 |
|
26 | 26 | let key: keyof any; // should be type "string | number | symbol"
|
27 |
| ->key : Symbol(key, Decl(bigintIndex.ts, 9, 3)) |
| 27 | +>key : Symbol(key, Decl(a.ts, 9, 3)) |
28 | 28 |
|
29 | 29 | key = 123;
|
30 |
| ->key : Symbol(key, Decl(bigintIndex.ts, 9, 3)) |
| 30 | +>key : Symbol(key, Decl(a.ts, 9, 3)) |
31 | 31 |
|
32 | 32 | key = "abc";
|
33 |
| ->key : Symbol(key, Decl(bigintIndex.ts, 9, 3)) |
| 33 | +>key : Symbol(key, Decl(a.ts, 9, 3)) |
34 | 34 |
|
35 | 35 | key = Symbol();
|
36 |
| ->key : Symbol(key, Decl(bigintIndex.ts, 9, 3)) |
| 36 | +>key : Symbol(key, Decl(a.ts, 9, 3)) |
37 | 37 | >Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.esnext.symbol.d.ts, --, --))
|
38 | 38 |
|
39 | 39 | key = 123n; // should error
|
40 |
| ->key : Symbol(key, Decl(bigintIndex.ts, 9, 3)) |
| 40 | +>key : Symbol(key, Decl(a.ts, 9, 3)) |
41 | 41 |
|
42 | 42 | // Show correct usage of bigint index: explicitly convert to string
|
43 | 43 | const bigNum: bigint = 0n;
|
44 |
| ->bigNum : Symbol(bigNum, Decl(bigintIndex.ts, 16, 5)) |
| 44 | +>bigNum : Symbol(bigNum, Decl(a.ts, 16, 5)) |
45 | 45 |
|
46 | 46 | const typedArray = new Uint8Array(3);
|
47 |
| ->typedArray : Symbol(typedArray, Decl(bigintIndex.ts, 17, 5)) |
| 47 | +>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5)) |
48 | 48 | >Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --))
|
49 | 49 |
|
50 | 50 | typedArray[bigNum] = 0xAA; // should error
|
51 |
| ->typedArray : Symbol(typedArray, Decl(bigintIndex.ts, 17, 5)) |
52 |
| ->bigNum : Symbol(bigNum, Decl(bigintIndex.ts, 16, 5)) |
| 51 | +>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5)) |
| 52 | +>bigNum : Symbol(bigNum, Decl(a.ts, 16, 5)) |
53 | 53 |
|
54 | 54 | typedArray[String(bigNum)] = 0xAA;
|
55 |
| ->typedArray : Symbol(typedArray, Decl(bigintIndex.ts, 17, 5)) |
| 55 | +>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5)) |
56 | 56 | >String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 2 more)
|
57 |
| ->bigNum : Symbol(bigNum, Decl(bigintIndex.ts, 16, 5)) |
| 57 | +>bigNum : Symbol(bigNum, Decl(a.ts, 16, 5)) |
58 | 58 |
|
59 | 59 | typedArray["1"] = 0xBB;
|
60 |
| ->typedArray : Symbol(typedArray, Decl(bigintIndex.ts, 17, 5)) |
| 60 | +>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5)) |
61 | 61 |
|
62 | 62 | typedArray[2] = 0xCC;
|
63 |
| ->typedArray : Symbol(typedArray, Decl(bigintIndex.ts, 17, 5)) |
| 63 | +>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5)) |
| 64 | + |
| 65 | +// {1n: 123} is a syntax error; must go in separate file so BigIntIndex error is shown |
| 66 | +=== tests/cases/compiler/b.ts === |
| 67 | +// BigInt cannot be used as an object literal property |
| 68 | +const a = {1n: 123}; |
| 69 | +>a : Symbol(a, Decl(b.ts, 1, 5)) |
| 70 | + |
| 71 | +const b = {[1n]: 456}; |
| 72 | +>b : Symbol(b, Decl(b.ts, 2, 5)) |
| 73 | +>[1n] : Symbol([1n], Decl(b.ts, 2, 11)) |
| 74 | + |
| 75 | +const c = {[bigNum]: 789}; |
| 76 | +>c : Symbol(c, Decl(b.ts, 3, 5)) |
| 77 | +>[bigNum] : Symbol([bigNum], Decl(b.ts, 3, 11)) |
| 78 | +>bigNum : Symbol(bigNum, Decl(a.ts, 16, 5)) |
64 | 79 |
|
0 commit comments