TypeScript/tests/baselines/reference/readonlyTupleAndArrayElaboration.symbols
Anders Hejlsberg a4f9bf0fce
Create type aliases for unresolved type symbols (#45976)
* Create type aliases for unresolved type symbols

* Accept new baselines

* Update fourslash tests

* Unresolved import aliases create tagged unresolved symbols

* Add comments

* Accept new baselines

* Add fourslash tests
2021-09-23 13:21:27 -07:00

178 lines
7 KiB
Plaintext

=== tests/cases/compiler/readonlyTupleAndArrayElaboration.ts ===
// @strict
// #Repro from #30839
let point = [3, 4] as const;
>point : Symbol(point, Decl(readonlyTupleAndArrayElaboration.ts, 3, 3))
>const : Symbol(const)
function distanceFromOrigin([x, y]: [number, number]) {
>distanceFromOrigin : Symbol(distanceFromOrigin, Decl(readonlyTupleAndArrayElaboration.ts, 3, 28))
>x : Symbol(x, Decl(readonlyTupleAndArrayElaboration.ts, 5, 29))
>y : Symbol(y, Decl(readonlyTupleAndArrayElaboration.ts, 5, 31))
return Math.sqrt(x ** 2 + y ** 2);
>Math.sqrt : Symbol(Math.sqrt, Decl(lib.es5.d.ts, --, --))
>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>sqrt : Symbol(Math.sqrt, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(readonlyTupleAndArrayElaboration.ts, 5, 29))
>y : Symbol(y, Decl(readonlyTupleAndArrayElaboration.ts, 5, 31))
}
distanceFromOrigin(point);
>distanceFromOrigin : Symbol(distanceFromOrigin, Decl(readonlyTupleAndArrayElaboration.ts, 3, 28))
>point : Symbol(point, Decl(readonlyTupleAndArrayElaboration.ts, 3, 3))
declare function arryFn(x: number[]): void;
>arryFn : Symbol(arryFn, Decl(readonlyTupleAndArrayElaboration.ts, 9, 26))
>x : Symbol(x, Decl(readonlyTupleAndArrayElaboration.ts, 11, 24))
arryFn(point);
>arryFn : Symbol(arryFn, Decl(readonlyTupleAndArrayElaboration.ts, 9, 26))
>point : Symbol(point, Decl(readonlyTupleAndArrayElaboration.ts, 3, 3))
declare function arryFn2(x: Array<number>): void;
>arryFn2 : Symbol(arryFn2, Decl(readonlyTupleAndArrayElaboration.ts, 12, 14))
>x : Symbol(x, Decl(readonlyTupleAndArrayElaboration.ts, 14, 25))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
arryFn2(point);
>arryFn2 : Symbol(arryFn2, Decl(readonlyTupleAndArrayElaboration.ts, 12, 14))
>point : Symbol(point, Decl(readonlyTupleAndArrayElaboration.ts, 3, 3))
declare const a: readonly number[];
>a : Symbol(a, Decl(readonlyTupleAndArrayElaboration.ts, 17, 13))
declare const b: Readonly<number[]>;
>b : Symbol(b, Decl(readonlyTupleAndArrayElaboration.ts, 18, 13))
>Readonly : Symbol(Readonly, Decl(lib.es5.d.ts, --, --))
declare const c: ReadonlyArray<number>;
>c : Symbol(c, Decl(readonlyTupleAndArrayElaboration.ts, 19, 13))
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --))
arryFn2(a);
>arryFn2 : Symbol(arryFn2, Decl(readonlyTupleAndArrayElaboration.ts, 12, 14))
>a : Symbol(a, Decl(readonlyTupleAndArrayElaboration.ts, 17, 13))
arryFn2(b);
>arryFn2 : Symbol(arryFn2, Decl(readonlyTupleAndArrayElaboration.ts, 12, 14))
>b : Symbol(b, Decl(readonlyTupleAndArrayElaboration.ts, 18, 13))
arryFn2(c);
>arryFn2 : Symbol(arryFn2, Decl(readonlyTupleAndArrayElaboration.ts, 12, 14))
>c : Symbol(c, Decl(readonlyTupleAndArrayElaboration.ts, 19, 13))
const t1: readonly [1] = [1];
>t1 : Symbol(t1, Decl(readonlyTupleAndArrayElaboration.ts, 25, 5))
const t2: readonly [] = t1;
>t2 : Symbol(t2, Decl(readonlyTupleAndArrayElaboration.ts, 26, 5))
>t1 : Symbol(t1, Decl(readonlyTupleAndArrayElaboration.ts, 25, 5))
const t3: readonly [1] = [1];
>t3 : Symbol(t3, Decl(readonlyTupleAndArrayElaboration.ts, 28, 5))
const t4: [] = t3;
>t4 : Symbol(t4, Decl(readonlyTupleAndArrayElaboration.ts, 29, 5))
>t3 : Symbol(t3, Decl(readonlyTupleAndArrayElaboration.ts, 28, 5))
const t5: [1] = [1];
>t5 : Symbol(t5, Decl(readonlyTupleAndArrayElaboration.ts, 31, 5))
const t6: readonly [] = t5;
>t6 : Symbol(t6, Decl(readonlyTupleAndArrayElaboration.ts, 32, 5))
>t5 : Symbol(t5, Decl(readonlyTupleAndArrayElaboration.ts, 31, 5))
const t7: [1] = [1];
>t7 : Symbol(t7, Decl(readonlyTupleAndArrayElaboration.ts, 34, 5))
const t8: [] = t7;
>t8 : Symbol(t8, Decl(readonlyTupleAndArrayElaboration.ts, 35, 5))
>t7 : Symbol(t7, Decl(readonlyTupleAndArrayElaboration.ts, 34, 5))
const a1: readonly number[] = [1];
>a1 : Symbol(a1, Decl(readonlyTupleAndArrayElaboration.ts, 37, 5))
const a2: readonly boolean[] = a1;
>a2 : Symbol(a2, Decl(readonlyTupleAndArrayElaboration.ts, 38, 5))
>a1 : Symbol(a1, Decl(readonlyTupleAndArrayElaboration.ts, 37, 5))
const a3: readonly number[] = [1];
>a3 : Symbol(a3, Decl(readonlyTupleAndArrayElaboration.ts, 40, 5))
const a4: boolean[] = a3;
>a4 : Symbol(a4, Decl(readonlyTupleAndArrayElaboration.ts, 41, 5))
>a3 : Symbol(a3, Decl(readonlyTupleAndArrayElaboration.ts, 40, 5))
const a5: number[] = [1];
>a5 : Symbol(a5, Decl(readonlyTupleAndArrayElaboration.ts, 43, 5))
const a6: readonly boolean [] = a5;
>a6 : Symbol(a6, Decl(readonlyTupleAndArrayElaboration.ts, 44, 5))
>a5 : Symbol(a5, Decl(readonlyTupleAndArrayElaboration.ts, 43, 5))
const a7: number[] = [1];
>a7 : Symbol(a7, Decl(readonlyTupleAndArrayElaboration.ts, 46, 5))
const a8: boolean[] = a7;
>a8 : Symbol(a8, Decl(readonlyTupleAndArrayElaboration.ts, 47, 5))
>a7 : Symbol(a7, Decl(readonlyTupleAndArrayElaboration.ts, 46, 5))
const ta1: readonly [1] = [1];
>ta1 : Symbol(ta1, Decl(readonlyTupleAndArrayElaboration.ts, 49, 5))
const ta2: readonly boolean[] = ta1;
>ta2 : Symbol(ta2, Decl(readonlyTupleAndArrayElaboration.ts, 50, 5))
>ta1 : Symbol(ta1, Decl(readonlyTupleAndArrayElaboration.ts, 49, 5))
const ta3: readonly [1] = [1];
>ta3 : Symbol(ta3, Decl(readonlyTupleAndArrayElaboration.ts, 52, 5))
const ta4: number[] = ta3;
>ta4 : Symbol(ta4, Decl(readonlyTupleAndArrayElaboration.ts, 53, 5))
>ta3 : Symbol(ta3, Decl(readonlyTupleAndArrayElaboration.ts, 52, 5))
const ta5: [1] = [1];
>ta5 : Symbol(ta5, Decl(readonlyTupleAndArrayElaboration.ts, 55, 5))
const ta6: readonly boolean[] = ta5;
>ta6 : Symbol(ta6, Decl(readonlyTupleAndArrayElaboration.ts, 56, 5))
>ta5 : Symbol(ta5, Decl(readonlyTupleAndArrayElaboration.ts, 55, 5))
const ta7: [1] = [1];
>ta7 : Symbol(ta7, Decl(readonlyTupleAndArrayElaboration.ts, 58, 5))
const ta8: boolean[] = ta7;
>ta8 : Symbol(ta8, Decl(readonlyTupleAndArrayElaboration.ts, 59, 5))
>ta7 : Symbol(ta7, Decl(readonlyTupleAndArrayElaboration.ts, 58, 5))
const at1: readonly number[] = [1];
>at1 : Symbol(at1, Decl(readonlyTupleAndArrayElaboration.ts, 61, 5))
const at2: readonly [1] = at1;
>at2 : Symbol(at2, Decl(readonlyTupleAndArrayElaboration.ts, 62, 5))
>at1 : Symbol(at1, Decl(readonlyTupleAndArrayElaboration.ts, 61, 5))
const at3: readonly number[] = [1];
>at3 : Symbol(at3, Decl(readonlyTupleAndArrayElaboration.ts, 64, 5))
const at4: [1] = at3;
>at4 : Symbol(at4, Decl(readonlyTupleAndArrayElaboration.ts, 65, 5))
>at3 : Symbol(at3, Decl(readonlyTupleAndArrayElaboration.ts, 64, 5))
const at5: number[] = [1];
>at5 : Symbol(at5, Decl(readonlyTupleAndArrayElaboration.ts, 67, 5))
const at6: readonly [1] = at5;
>at6 : Symbol(at6, Decl(readonlyTupleAndArrayElaboration.ts, 68, 5))
>at5 : Symbol(at5, Decl(readonlyTupleAndArrayElaboration.ts, 67, 5))
const at7: number[] = [1];
>at7 : Symbol(at7, Decl(readonlyTupleAndArrayElaboration.ts, 70, 5))
const at8: [1] = at7;
>at8 : Symbol(at8, Decl(readonlyTupleAndArrayElaboration.ts, 71, 5))
>at7 : Symbol(at7, Decl(readonlyTupleAndArrayElaboration.ts, 70, 5))