File: discriminatedUnionTypes2.symbols

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (275 lines) | stat: -rw-r--r-- 12,803 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
=== tests/cases/conformance/types/union/discriminatedUnionTypes2.ts ===
function f10(x : { kind: false, a: string } | { kind: true, b: string } | { kind: string, c: string }) {
>f10 : Symbol(f10, Decl(discriminatedUnionTypes2.ts, 0, 0))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 18))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 0, 31))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 47))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 0, 59))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 75))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 0, 89))

    if (x.kind === false) {
>x.kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 18), Decl(discriminatedUnionTypes2.ts, 0, 47), Decl(discriminatedUnionTypes2.ts, 0, 75))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 18), Decl(discriminatedUnionTypes2.ts, 0, 47), Decl(discriminatedUnionTypes2.ts, 0, 75))

        x.a;
>x.a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 0, 31))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 0, 31))
    }
    else if (x.kind === true) {
>x.kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 47), Decl(discriminatedUnionTypes2.ts, 0, 75))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 0, 47), Decl(discriminatedUnionTypes2.ts, 0, 75))

        x.b;
>x.b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 0, 59))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 0, 59))
    }
    else {
        x.c;
>x.c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 0, 89))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 0, 13))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 0, 89))
    }
}

function f11(x : { kind: false, a: string } | { kind: true, b: string } | { kind: string, c: string }) {
>f11 : Symbol(f11, Decl(discriminatedUnionTypes2.ts, 10, 1))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 12, 13))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 12, 18))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 12, 31))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 12, 47))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 12, 59))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 12, 75))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 12, 89))

    switch (x.kind) {
>x.kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 12, 18), Decl(discriminatedUnionTypes2.ts, 12, 47), Decl(discriminatedUnionTypes2.ts, 12, 75))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 12, 13))
>kind : Symbol(kind, Decl(discriminatedUnionTypes2.ts, 12, 18), Decl(discriminatedUnionTypes2.ts, 12, 47), Decl(discriminatedUnionTypes2.ts, 12, 75))

        case false:
            x.a;
>x.a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 12, 31))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 12, 13))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 12, 31))

            break;
        case true:
            x.b;
>x.b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 12, 59))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 12, 13))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 12, 59))

            break;
        default:
            x.c;
>x.c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 12, 89))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 12, 13))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 12, 89))
    }
}

function f13(x: { a: null; b: string } | { a: string, c: number }) {
>f13 : Symbol(f13, Decl(discriminatedUnionTypes2.ts, 23, 1))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 25, 13))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 25, 17))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 25, 26))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 25, 42))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 25, 53))

    x = { a: null, b: "foo", c: 4};  // Error
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 25, 13))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 26, 9))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 26, 18))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 26, 28))
}

function f14<T>(x: { a: 0; b: string } | { a: T, c: number }) {
>f14 : Symbol(f14, Decl(discriminatedUnionTypes2.ts, 27, 1))
>T : Symbol(T, Decl(discriminatedUnionTypes2.ts, 29, 13))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 29, 16))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 29, 20))
>b : Symbol(b, Decl(discriminatedUnionTypes2.ts, 29, 26))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 29, 42))
>T : Symbol(T, Decl(discriminatedUnionTypes2.ts, 29, 13))
>c : Symbol(c, Decl(discriminatedUnionTypes2.ts, 29, 48))

    if (x.a === 0) {
>x.a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 29, 20), Decl(discriminatedUnionTypes2.ts, 29, 42))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 29, 16))
>a : Symbol(a, Decl(discriminatedUnionTypes2.ts, 29, 20), Decl(discriminatedUnionTypes2.ts, 29, 42))

        x.b;  // Error
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 29, 16))
    }
}

type Result<T> = { error?: undefined, value: T } | { error: Error };
>Result : Symbol(Result, Decl(discriminatedUnionTypes2.ts, 33, 1))
>T : Symbol(T, Decl(discriminatedUnionTypes2.ts, 35, 12))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 18))
>value : Symbol(value, Decl(discriminatedUnionTypes2.ts, 35, 37))
>T : Symbol(T, Decl(discriminatedUnionTypes2.ts, 35, 12))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 52))
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

function f15(x: Result<number>) {
>f15 : Symbol(f15, Decl(discriminatedUnionTypes2.ts, 35, 68))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 37, 13))
>Result : Symbol(Result, Decl(discriminatedUnionTypes2.ts, 33, 1))

    if (!x.error) {
>x.error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 52), Decl(discriminatedUnionTypes2.ts, 35, 18))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 37, 13))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 52), Decl(discriminatedUnionTypes2.ts, 35, 18))

        x.value;
>x.value : Symbol(value, Decl(discriminatedUnionTypes2.ts, 35, 37))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 37, 13))
>value : Symbol(value, Decl(discriminatedUnionTypes2.ts, 35, 37))
    }
    else {
        x.error.message;
>x.error.message : Symbol(Error.message, Decl(lib.es5.d.ts, --, --))
>x.error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 52))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 37, 13))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 35, 52))
>message : Symbol(Error.message, Decl(lib.es5.d.ts, --, --))
    }
}

f15({ value: 10 });
>f15 : Symbol(f15, Decl(discriminatedUnionTypes2.ts, 35, 68))
>value : Symbol(value, Decl(discriminatedUnionTypes2.ts, 46, 5))

f15({ error: new Error("boom") });
>f15 : Symbol(f15, Decl(discriminatedUnionTypes2.ts, 35, 68))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 47, 5))
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

// Repro from #24193

interface WithError {
>WithError : Symbol(WithError, Decl(discriminatedUnionTypes2.ts, 47, 34))

    error: Error
>error : Symbol(WithError.error, Decl(discriminatedUnionTypes2.ts, 51, 21))
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

    data: null
>data : Symbol(WithError.data, Decl(discriminatedUnionTypes2.ts, 52, 16))
}

interface WithoutError<Data> {
>WithoutError : Symbol(WithoutError, Decl(discriminatedUnionTypes2.ts, 54, 1))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 56, 23))

    error: null
>error : Symbol(WithoutError.error, Decl(discriminatedUnionTypes2.ts, 56, 30))

    data: Data
>data : Symbol(WithoutError.data, Decl(discriminatedUnionTypes2.ts, 57, 15))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 56, 23))
}

type DataCarrier<Data> = WithError | WithoutError<Data>
>DataCarrier : Symbol(DataCarrier, Decl(discriminatedUnionTypes2.ts, 59, 1))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 61, 17))
>WithError : Symbol(WithError, Decl(discriminatedUnionTypes2.ts, 47, 34))
>WithoutError : Symbol(WithoutError, Decl(discriminatedUnionTypes2.ts, 54, 1))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 61, 17))

function f20<Data>(carrier: DataCarrier<Data>) {
>f20 : Symbol(f20, Decl(discriminatedUnionTypes2.ts, 61, 55))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 63, 13))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>DataCarrier : Symbol(DataCarrier, Decl(discriminatedUnionTypes2.ts, 59, 1))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 63, 13))

    if (carrier.error === null) {
>carrier.error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 51, 21), Decl(discriminatedUnionTypes2.ts, 56, 30))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 51, 21), Decl(discriminatedUnionTypes2.ts, 56, 30))

        const error: null = carrier.error
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 65, 13))
>carrier.error : Symbol(WithoutError.error, Decl(discriminatedUnionTypes2.ts, 56, 30))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>error : Symbol(WithoutError.error, Decl(discriminatedUnionTypes2.ts, 56, 30))

        const data: Data = carrier.data
>data : Symbol(data, Decl(discriminatedUnionTypes2.ts, 66, 13))
>Data : Symbol(Data, Decl(discriminatedUnionTypes2.ts, 63, 13))
>carrier.data : Symbol(WithoutError.data, Decl(discriminatedUnionTypes2.ts, 57, 15))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>data : Symbol(WithoutError.data, Decl(discriminatedUnionTypes2.ts, 57, 15))

    } else {
        const error: Error = carrier.error
>error : Symbol(error, Decl(discriminatedUnionTypes2.ts, 68, 13))
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>carrier.error : Symbol(WithError.error, Decl(discriminatedUnionTypes2.ts, 51, 21))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>error : Symbol(WithError.error, Decl(discriminatedUnionTypes2.ts, 51, 21))

        const data: null = carrier.data
>data : Symbol(data, Decl(discriminatedUnionTypes2.ts, 69, 13))
>carrier.data : Symbol(WithError.data, Decl(discriminatedUnionTypes2.ts, 52, 16))
>carrier : Symbol(carrier, Decl(discriminatedUnionTypes2.ts, 63, 19))
>data : Symbol(WithError.data, Decl(discriminatedUnionTypes2.ts, 52, 16))
    }
}

// Repro from #28935

type Foo = { tag: true, x: number } | { tag: false, y: number } | { [x: string]: string };
>Foo : Symbol(Foo, Decl(discriminatedUnionTypes2.ts, 71, 1))
>tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 12))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 75, 23))
>tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 39))
>y : Symbol(y, Decl(discriminatedUnionTypes2.ts, 75, 51))
>x : Symbol(x, Decl(discriminatedUnionTypes2.ts, 75, 69))

function f30(foo: Foo) {
>f30 : Symbol(f30, Decl(discriminatedUnionTypes2.ts, 75, 90))
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 77, 13))
>Foo : Symbol(Foo, Decl(discriminatedUnionTypes2.ts, 71, 1))

    if (foo.tag) {
>foo.tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 12), Decl(discriminatedUnionTypes2.ts, 75, 39))
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 77, 13))
>tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 12), Decl(discriminatedUnionTypes2.ts, 75, 39))

        foo;
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 77, 13))
    }
    else {
        foo;
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 77, 13))
    }
}

function f31(foo: Foo) {
>f31 : Symbol(f31, Decl(discriminatedUnionTypes2.ts, 84, 1))
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 86, 13))
>Foo : Symbol(Foo, Decl(discriminatedUnionTypes2.ts, 71, 1))

    if (foo.tag === true) {
>foo.tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 12), Decl(discriminatedUnionTypes2.ts, 75, 39))
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 86, 13))
>tag : Symbol(tag, Decl(discriminatedUnionTypes2.ts, 75, 12), Decl(discriminatedUnionTypes2.ts, 75, 39))

        foo;
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 86, 13))
    }
    else {
        foo;
>foo : Symbol(foo, Decl(discriminatedUnionTypes2.ts, 86, 13))
    }
}