TypeScript/tests/baselines/reference/dynamicNames.types
Wesley Wigham 20f9493f04
Allow all private declarations to be emitted in declaration output (#23351)
* Mostly functional WIP

* Fix accessors, symbol stringification

* Accept/update changed baselines

* Move type definition so file build order doesnt matter

* Accept post-merge test update

* Rename function, add doc
2018-05-09 19:53:44 -07:00

613 lines
9.8 KiB
Plaintext

=== tests/cases/compiler/module.ts ===
export const c0 = "a";
>c0 : "a"
>"a" : "a"
export const c1 = 1;
>c1 : 1
>1 : 1
export const s0 = Symbol();
>s0 : unique symbol
>Symbol() : unique symbol
>Symbol : SymbolConstructor
export interface T0 {
>T0 : T0
[c0]: number;
>[c0] : number
>c0 : "a"
[c1]: string;
>[c1] : string
>c1 : 1
[s0]: boolean;
>[s0] : boolean
>s0 : unique symbol
}
export declare class T1 implements T2 {
>T1 : T1
>T2 : T2
[c0]: number;
>[c0] : number
>c0 : "a"
[c1]: string;
>[c1] : string
>c1 : 1
[s0]: boolean;
>[s0] : boolean
>s0 : unique symbol
}
export declare class T2 extends T1 {
>T2 : T2
>T1 : T1
}
export declare type T3 = {
>T3 : T3
[c0]: number;
>[c0] : number
>c0 : "a"
[c1]: string;
>[c1] : string
>c1 : 1
[s0]: boolean;
>[s0] : boolean
>s0 : unique symbol
};
=== tests/cases/compiler/main.ts ===
import { c0, c1, s0, T0, T1, T2, T3 } from "./module";
>c0 : "a"
>c1 : 1
>s0 : unique symbol
>T0 : any
>T1 : typeof T1
>T2 : typeof T2
>T3 : any
import * as M from "./module";
>M : typeof M
namespace N {
>N : typeof N
export const c2 = "a";
>c2 : "a"
>"a" : "a"
export const c3 = 1;
>c3 : 1
>1 : 1
export const s1: typeof s0 = s0;
>s1 : unique symbol
>s0 : unique symbol
>s0 : unique symbol
export interface T4 {
>T4 : T4
[N.c2]: number;
>[N.c2] : number
>N.c2 : "a"
>N : typeof N
>c2 : "a"
[N.c3]: string;
>[N.c3] : string
>N.c3 : 1
>N : typeof N
>c3 : 1
[N.s1]: boolean;
>[N.s1] : boolean
>N.s1 : unique symbol
>N : typeof N
>s1 : unique symbol
}
export declare class T5 implements T4 {
>T5 : T5
>T4 : T4
[N.c2]: number;
>[N.c2] : number
>N.c2 : "a"
>N : typeof N
>c2 : "a"
[N.c3]: string;
>[N.c3] : string
>N.c3 : 1
>N : typeof N
>c3 : 1
[N.s1]: boolean;
>[N.s1] : boolean
>N.s1 : unique symbol
>N : typeof N
>s1 : unique symbol
}
export declare class T6 extends T5 {
>T6 : T6
>T5 : T5
}
export declare type T7 = {
>T7 : { [N.c2]: number; [N.c3]: string; [N.s1]: boolean; }
[N.c2]: number;
>[N.c2] : number
>N.c2 : "a"
>N : typeof N
>c2 : "a"
[N.c3]: string;
>[N.c3] : string
>N.c3 : 1
>N : typeof N
>c3 : 1
[N.s1]: boolean;
>[N.s1] : boolean
>N.s1 : unique symbol
>N : typeof N
>s1 : unique symbol
};
}
export const c4 = "a";
>c4 : "a"
>"a" : "a"
export const c5 = 1;
>c5 : 1
>1 : 1
export const s2: typeof s0 = s0;
>s2 : unique symbol
>s0 : unique symbol
>s0 : unique symbol
interface T8 {
>T8 : T8
[c4]: number;
>[c4] : number
>c4 : "a"
[c5]: string;
>[c5] : string
>c5 : 1
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
}
declare class T9 implements T8 {
>T9 : T9
>T8 : T8
[c4]: number;
>[c4] : number
>c4 : "a"
[c5]: string;
>[c5] : string
>c5 : 1
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
}
declare class T10 extends T9 {
>T10 : T10
>T9 : T9
}
declare type T11 = {
>T11 : T11
[c4]: number;
>[c4] : number
>c4 : "a"
[c5]: string;
>[c5] : string
>c5 : 1
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
};
interface T12 {
>T12 : T12
a: number;
>a : number
1: string;
>1 : string
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
}
declare class T13 implements T2 {
>T13 : T13
>T2 : T2
a: number;
>a : number
1: string;
>1 : string
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
}
declare class T14 extends T13 {
>T14 : T14
>T13 : T13
}
declare type T15 = {
>T15 : T15
a: number;
>a : number
1: string;
>1 : string
[s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
};
declare class C {
>C : C
static a: number;
>a : number
static 1: string;
>1 : string
static [s2]: boolean;
>[s2] : boolean
>s2 : unique symbol
}
let t0: T0;
>t0 : T0
>T0 : T0
let t1: T1;
>t1 : T1
>T1 : T1
let t2: T2;
>t2 : T2
>T2 : T2
let t3: T3;
>t3 : T3
>T3 : T3
let t0_1: M.T0;
>t0_1 : T0
>M : any
>T0 : T0
let t1_1: M.T1;
>t1_1 : T1
>M : any
>T1 : T1
let t2_1: M.T2;
>t2_1 : T2
>M : any
>T2 : T2
let t3_1: M.T3;
>t3_1 : T3
>M : any
>T3 : T3
let t4: N.T4;
>t4 : N.T4
>N : any
>T4 : N.T4
let t5: N.T5;
>t5 : N.T5
>N : any
>T5 : N.T5
let t6: N.T6;
>t6 : N.T6
>N : any
>T6 : N.T6
let t7: N.T7;
>t7 : N.T7
>N : any
>T7 : N.T7
let t8: T8;
>t8 : T8
>T8 : T8
let t9: T9;
>t9 : T9
>T9 : T9
let t10: T10;
>t10 : T10
>T10 : T10
let t11: T11;
>t11 : T11
>T11 : T11
let t12: T12;
>t12 : T12
>T12 : T12
let t13: T13;
>t13 : T13
>T13 : T13
let t14: T14;
>t14 : T14
>T14 : T14
let t15: T15;
>t15 : T15
>T15 : T15
// assignability
t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1, t2 = t3, t3 = t0, t3 = t1, t3 = t2;
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1, t2 = t3, t3 = t0, t3 = t1, t3 = t2 : T2
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1, t2 = t3, t3 = t0, t3 = t1 : T1
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1, t2 = t3, t3 = t0 : T0
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1, t2 = t3 : T3
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0, t2 = t1 : T1
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3, t2 = t0 : T0
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2, t1 = t3 : T3
>t0 = t1, t0 = t2, t0 = t3, t1 = t0, t1 = t2 : T2
>t0 = t1, t0 = t2, t0 = t3, t1 = t0 : T0
>t0 = t1, t0 = t2, t0 = t3 : T3
>t0 = t1, t0 = t2 : T2
>t0 = t1 : T1
>t0 : T0
>t1 : T1
>t0 = t2 : T2
>t0 : T0
>t2 : T2
>t0 = t3 : T3
>t0 : T0
>t3 : T3
>t1 = t0 : T0
>t1 : T1
>t0 : T0
>t1 = t2 : T2
>t1 : T1
>t2 : T2
>t1 = t3 : T3
>t1 : T1
>t3 : T3
>t2 = t0 : T0
>t2 : T2
>t0 : T0
>t2 = t1 : T1
>t2 : T2
>t1 : T1
>t2 = t3 : T3
>t2 : T2
>t3 : T3
>t3 = t0 : T0
>t3 : T3
>t0 : T0
>t3 = t1 : T1
>t3 : T3
>t1 : T1
>t3 = t2 : T2
>t3 : T3
>t2 : T2
t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5, t6 = t7, t7 = t4, t7 = t5, t7 = t6;
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5, t6 = t7, t7 = t4, t7 = t5, t7 = t6 : N.T6
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5, t6 = t7, t7 = t4, t7 = t5 : N.T5
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5, t6 = t7, t7 = t4 : N.T4
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5, t6 = t7 : N.T7
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4, t6 = t5 : N.T5
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7, t6 = t4 : N.T4
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6, t5 = t7 : N.T7
>t4 = t5, t4 = t6, t4 = t7, t5 = t4, t5 = t6 : N.T6
>t4 = t5, t4 = t6, t4 = t7, t5 = t4 : N.T4
>t4 = t5, t4 = t6, t4 = t7 : N.T7
>t4 = t5, t4 = t6 : N.T6
>t4 = t5 : N.T5
>t4 : N.T4
>t5 : N.T5
>t4 = t6 : N.T6
>t4 : N.T4
>t6 : N.T6
>t4 = t7 : N.T7
>t4 : N.T4
>t7 : N.T7
>t5 = t4 : N.T4
>t5 : N.T5
>t4 : N.T4
>t5 = t6 : N.T6
>t5 : N.T5
>t6 : N.T6
>t5 = t7 : N.T7
>t5 : N.T5
>t7 : N.T7
>t6 = t4 : N.T4
>t6 : N.T6
>t4 : N.T4
>t6 = t5 : N.T5
>t6 : N.T6
>t5 : N.T5
>t6 = t7 : N.T7
>t6 : N.T6
>t7 : N.T7
>t7 = t4 : N.T4
>t7 : N.T7
>t4 : N.T4
>t7 = t5 : N.T5
>t7 : N.T7
>t5 : N.T5
>t7 = t6 : N.T6
>t7 : N.T7
>t6 : N.T6
t0 = t12, t0 = t13, t0 = t14, t0 = t15, t12 = t0, t13 = t0, t14 = t0, t15 = t0;
>t0 = t12, t0 = t13, t0 = t14, t0 = t15, t12 = t0, t13 = t0, t14 = t0, t15 = t0 : T0
>t0 = t12, t0 = t13, t0 = t14, t0 = t15, t12 = t0, t13 = t0, t14 = t0 : T0
>t0 = t12, t0 = t13, t0 = t14, t0 = t15, t12 = t0, t13 = t0 : T0
>t0 = t12, t0 = t13, t0 = t14, t0 = t15, t12 = t0 : T0
>t0 = t12, t0 = t13, t0 = t14, t0 = t15 : T15
>t0 = t12, t0 = t13, t0 = t14 : T14
>t0 = t12, t0 = t13 : T13
>t0 = t12 : T12
>t0 : T0
>t12 : T12
>t0 = t13 : T13
>t0 : T0
>t13 : T13
>t0 = t14 : T14
>t0 : T0
>t14 : T14
>t0 = t15 : T15
>t0 : T0
>t15 : T15
>t12 = t0 : T0
>t12 : T12
>t0 : T0
>t13 = t0 : T0
>t13 : T13
>t0 : T0
>t14 = t0 : T0
>t14 : T14
>t0 : T0
>t15 = t0 : T0
>t15 : T15
>t0 : T0
t0 = C; // static side
>t0 = C : typeof C
>t0 : T0
>C : typeof C
// object literals
export const o1 = {
>o1 : { [c4]: number; [c5]: string; [s2]: boolean; }
>{ [c4]: 1, [c5]: "a", [s2]: true} : { [c4]: number; [c5]: string; [s2]: boolean; }
[c4]: 1,
>[c4] : number
>c4 : "a"
>1 : 1
[c5]: "a",
>[c5] : string
>c5 : 1
>"a" : "a"
[s2]: true
>[s2] : boolean
>s2 : unique symbol
>true : true
};
// check element access types
export const o1_c4 = o1[c4];
>o1_c4 : number
>o1[c4] : number
>o1 : { [c4]: number; [c5]: string; [s2]: boolean; }
>c4 : "a"
export const o1_c5 = o1[c5];
>o1_c5 : string
>o1[c5] : string
>o1 : { [c4]: number; [c5]: string; [s2]: boolean; }
>c5 : 1
export const o1_s2 = o1[s2];
>o1_s2 : boolean
>o1[s2] : boolean
>o1 : { [c4]: number; [c5]: string; [s2]: boolean; }
>s2 : unique symbol
export const o2: T0 = o1;
>o2 : T0
>T0 : T0
>o1 : { [c4]: number; [c5]: string; [s2]: boolean; }
// recursive declarations
// (type parameter indirection courtesy of #20400)
declare const rI: RI<"a">;
>rI : RI<"a">
>RI : RI<T>
rI.x
>rI.x : "a"
>rI : RI<"a">
>x : "a"
interface RI<T extends "a" | "b"> {
>RI : RI<T>
>T : T
x: T;
>x : T
>T : T
[rI.x]: "b";
>[rI.x] : "b"
>rI.x : "a"
>rI : RI<"a">
>x : "a"
}
declare const rC: RC<"a">;
>rC : RC<"a">
>RC : RC<T>
rC.x
>rC.x : "a"
>rC : RC<"a">
>x : "a"
declare class RC<T extends "a" | "b"> {
>RC : RC<T>
>T : T
x: T;
>x : T
>T : T
[rC.x]: "b";
>[rC.x] : "b"
>rC.x : "a"
>rC : RC<"a">
>x : "a"
}