File: stringLiteralTypeIsSubtypeOfString.symbols

package info (click to toggle)
node-typescript 2.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 203,952 kB
  • ctags: 52,987
  • sloc: sh: 11; makefile: 5
file content (343 lines) | stat: -rw-r--r-- 21,825 bytes parent folder | download | duplicates (2)
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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts ===
// string literal types are subtypes of string, any

// ok
function f1(x: 'a');
>f1 : Symbol(f1, Decl(stringLiteralTypeIsSubtypeOfString.ts, 0, 0), Decl(stringLiteralTypeIsSubtypeOfString.ts, 3, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 4, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 3, 12))

function f1(x: string);
>f1 : Symbol(f1, Decl(stringLiteralTypeIsSubtypeOfString.ts, 0, 0), Decl(stringLiteralTypeIsSubtypeOfString.ts, 3, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 4, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 4, 12))

function f1(x: string) { }
>f1 : Symbol(f1, Decl(stringLiteralTypeIsSubtypeOfString.ts, 0, 0), Decl(stringLiteralTypeIsSubtypeOfString.ts, 3, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 4, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 5, 12))

// ok
function f2(x: 'a');
>f2 : Symbol(f2, Decl(stringLiteralTypeIsSubtypeOfString.ts, 5, 26), Decl(stringLiteralTypeIsSubtypeOfString.ts, 8, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 9, 20))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 8, 12))

function f2(x: any);
>f2 : Symbol(f2, Decl(stringLiteralTypeIsSubtypeOfString.ts, 5, 26), Decl(stringLiteralTypeIsSubtypeOfString.ts, 8, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 9, 20))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 9, 12))

function f2(x: any) { }
>f2 : Symbol(f2, Decl(stringLiteralTypeIsSubtypeOfString.ts, 5, 26), Decl(stringLiteralTypeIsSubtypeOfString.ts, 8, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 9, 20))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 10, 12))

// errors
function f3(x: 'a');
>f3 : Symbol(f3, Decl(stringLiteralTypeIsSubtypeOfString.ts, 10, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 13, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 14, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 13, 12))

function f3(x: Object);
>f3 : Symbol(f3, Decl(stringLiteralTypeIsSubtypeOfString.ts, 10, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 13, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 14, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 14, 12))
>Object : Symbol(Object, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

function f3(x: any) { }
>f3 : Symbol(f3, Decl(stringLiteralTypeIsSubtypeOfString.ts, 10, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 13, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 14, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 15, 12))

function f4(x: 'a');
>f4 : Symbol(f4, Decl(stringLiteralTypeIsSubtypeOfString.ts, 15, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 17, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 18, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 17, 12))

function f4(x: {});
>f4 : Symbol(f4, Decl(stringLiteralTypeIsSubtypeOfString.ts, 15, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 17, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 18, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 18, 12))

function f4(x: any) { }
>f4 : Symbol(f4, Decl(stringLiteralTypeIsSubtypeOfString.ts, 15, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 17, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 18, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 19, 12))

function f5(x: 'a');
>f5 : Symbol(f5, Decl(stringLiteralTypeIsSubtypeOfString.ts, 19, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 21, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 22, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 21, 12))

function f5(x: number);
>f5 : Symbol(f5, Decl(stringLiteralTypeIsSubtypeOfString.ts, 19, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 21, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 22, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 22, 12))

function f5(x: any) { }
>f5 : Symbol(f5, Decl(stringLiteralTypeIsSubtypeOfString.ts, 19, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 21, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 22, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 23, 12))

function f6(x: 'a');
>f6 : Symbol(f6, Decl(stringLiteralTypeIsSubtypeOfString.ts, 23, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 25, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 26, 24))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 25, 12))

function f6(x: boolean);
>f6 : Symbol(f6, Decl(stringLiteralTypeIsSubtypeOfString.ts, 23, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 25, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 26, 24))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 26, 12))

function f6(x: any) { }
>f6 : Symbol(f6, Decl(stringLiteralTypeIsSubtypeOfString.ts, 23, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 25, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 26, 24))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 27, 12))

function f7(x: 'a');
>f7 : Symbol(f7, Decl(stringLiteralTypeIsSubtypeOfString.ts, 27, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 29, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 30, 21))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 29, 12))

function f7(x: Date);
>f7 : Symbol(f7, Decl(stringLiteralTypeIsSubtypeOfString.ts, 27, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 29, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 30, 21))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 30, 12))
>Date : Symbol(Date, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

function f7(x: any) { }
>f7 : Symbol(f7, Decl(stringLiteralTypeIsSubtypeOfString.ts, 27, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 29, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 30, 21))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 31, 12))

function f8(x: 'a');
>f8 : Symbol(f8, Decl(stringLiteralTypeIsSubtypeOfString.ts, 31, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 33, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 34, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 33, 12))

function f8(x: RegExp);
>f8 : Symbol(f8, Decl(stringLiteralTypeIsSubtypeOfString.ts, 31, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 33, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 34, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 34, 12))
>RegExp : Symbol(RegExp, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

function f8(x: any) { }
>f8 : Symbol(f8, Decl(stringLiteralTypeIsSubtypeOfString.ts, 31, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 33, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 34, 23))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 35, 12))

function f9(x: 'a');
>f9 : Symbol(f9, Decl(stringLiteralTypeIsSubtypeOfString.ts, 35, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 37, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 38, 25))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 37, 12))

function f9(x: () => {});
>f9 : Symbol(f9, Decl(stringLiteralTypeIsSubtypeOfString.ts, 35, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 37, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 38, 25))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 38, 12))

function f9(x: any) { }
>f9 : Symbol(f9, Decl(stringLiteralTypeIsSubtypeOfString.ts, 35, 23), Decl(stringLiteralTypeIsSubtypeOfString.ts, 37, 20), Decl(stringLiteralTypeIsSubtypeOfString.ts, 38, 25))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 39, 12))

class C implements String {
>C : Symbol(C, Decl(stringLiteralTypeIsSubtypeOfString.ts, 39, 23))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

    toString(): string { return null; }
>toString : Symbol(C.toString, Decl(stringLiteralTypeIsSubtypeOfString.ts, 41, 27))

    charAt(pos: number): string { return null; }
>charAt : Symbol(C.charAt, Decl(stringLiteralTypeIsSubtypeOfString.ts, 42, 39))
>pos : Symbol(pos, Decl(stringLiteralTypeIsSubtypeOfString.ts, 43, 11))

    charCodeAt(index: number): number { return null; }
>charCodeAt : Symbol(C.charCodeAt, Decl(stringLiteralTypeIsSubtypeOfString.ts, 43, 48))
>index : Symbol(index, Decl(stringLiteralTypeIsSubtypeOfString.ts, 44, 15))

    concat(...strings: string[]): string { return null; }
>concat : Symbol(C.concat, Decl(stringLiteralTypeIsSubtypeOfString.ts, 44, 54))
>strings : Symbol(strings, Decl(stringLiteralTypeIsSubtypeOfString.ts, 45, 11))

    indexOf(searchString: string, position?: number): number { return null; }
>indexOf : Symbol(C.indexOf, Decl(stringLiteralTypeIsSubtypeOfString.ts, 45, 57))
>searchString : Symbol(searchString, Decl(stringLiteralTypeIsSubtypeOfString.ts, 46, 12))
>position : Symbol(position, Decl(stringLiteralTypeIsSubtypeOfString.ts, 46, 33))

    lastIndexOf(searchString: string, position?: number): number { return null; }
>lastIndexOf : Symbol(C.lastIndexOf, Decl(stringLiteralTypeIsSubtypeOfString.ts, 46, 77))
>searchString : Symbol(searchString, Decl(stringLiteralTypeIsSubtypeOfString.ts, 47, 16))
>position : Symbol(position, Decl(stringLiteralTypeIsSubtypeOfString.ts, 47, 37))

    localeCompare(that: string): number { return null; }
>localeCompare : Symbol(C.localeCompare, Decl(stringLiteralTypeIsSubtypeOfString.ts, 47, 81))
>that : Symbol(that, Decl(stringLiteralTypeIsSubtypeOfString.ts, 48, 18))

    match(regexp: any): string[] { return null; }
>match : Symbol(C.match, Decl(stringLiteralTypeIsSubtypeOfString.ts, 48, 56))
>regexp : Symbol(regexp, Decl(stringLiteralTypeIsSubtypeOfString.ts, 49, 10))

    replace(searchValue: any, replaceValue: any): string { return null; }
>replace : Symbol(C.replace, Decl(stringLiteralTypeIsSubtypeOfString.ts, 49, 49))
>searchValue : Symbol(searchValue, Decl(stringLiteralTypeIsSubtypeOfString.ts, 50, 12))
>replaceValue : Symbol(replaceValue, Decl(stringLiteralTypeIsSubtypeOfString.ts, 50, 29))

    search(regexp: any): number { return null; }
>search : Symbol(C.search, Decl(stringLiteralTypeIsSubtypeOfString.ts, 50, 73))
>regexp : Symbol(regexp, Decl(stringLiteralTypeIsSubtypeOfString.ts, 51, 11))

    slice(start?: number, end?: number): string { return null; }
>slice : Symbol(C.slice, Decl(stringLiteralTypeIsSubtypeOfString.ts, 51, 48))
>start : Symbol(start, Decl(stringLiteralTypeIsSubtypeOfString.ts, 52, 10))
>end : Symbol(end, Decl(stringLiteralTypeIsSubtypeOfString.ts, 52, 25))

    split(separator: any, limit?: number): string[] { return null; }
>split : Symbol(C.split, Decl(stringLiteralTypeIsSubtypeOfString.ts, 52, 64))
>separator : Symbol(separator, Decl(stringLiteralTypeIsSubtypeOfString.ts, 53, 10))
>limit : Symbol(limit, Decl(stringLiteralTypeIsSubtypeOfString.ts, 53, 25))

    substring(start: number, end?: number): string { return null; }
>substring : Symbol(C.substring, Decl(stringLiteralTypeIsSubtypeOfString.ts, 53, 68))
>start : Symbol(start, Decl(stringLiteralTypeIsSubtypeOfString.ts, 54, 14))
>end : Symbol(end, Decl(stringLiteralTypeIsSubtypeOfString.ts, 54, 28))

    toLowerCase(): string { return null; }
>toLowerCase : Symbol(C.toLowerCase, Decl(stringLiteralTypeIsSubtypeOfString.ts, 54, 67))

    toLocaleLowerCase(): string { return null; }
>toLocaleLowerCase : Symbol(C.toLocaleLowerCase, Decl(stringLiteralTypeIsSubtypeOfString.ts, 55, 42))

    toUpperCase(): string { return null; }
>toUpperCase : Symbol(C.toUpperCase, Decl(stringLiteralTypeIsSubtypeOfString.ts, 56, 48))

    toLocaleUpperCase(): string { return null; }
>toLocaleUpperCase : Symbol(C.toLocaleUpperCase, Decl(stringLiteralTypeIsSubtypeOfString.ts, 57, 42))

    trim(): string { return null; }
>trim : Symbol(C.trim, Decl(stringLiteralTypeIsSubtypeOfString.ts, 58, 48))

    length: number;
>length : Symbol(C.length, Decl(stringLiteralTypeIsSubtypeOfString.ts, 59, 35))

    substr(from: number, length?: number): string { return null; }
>substr : Symbol(C.substr, Decl(stringLiteralTypeIsSubtypeOfString.ts, 60, 19))
>from : Symbol(from, Decl(stringLiteralTypeIsSubtypeOfString.ts, 61, 11))
>length : Symbol(length, Decl(stringLiteralTypeIsSubtypeOfString.ts, 61, 24))

    valueOf(): string { return null; }
>valueOf : Symbol(C.valueOf, Decl(stringLiteralTypeIsSubtypeOfString.ts, 61, 66))

    [index: number]: string;
>index : Symbol(index, Decl(stringLiteralTypeIsSubtypeOfString.ts, 63, 5))
}
 
// BUG 831846
function f10(x: 'a');
>f10 : Symbol(f10, Decl(stringLiteralTypeIsSubtypeOfString.ts, 64, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 67, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 68, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 67, 13))

function f10(x: C);
>f10 : Symbol(f10, Decl(stringLiteralTypeIsSubtypeOfString.ts, 64, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 67, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 68, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 68, 13))
>C : Symbol(C, Decl(stringLiteralTypeIsSubtypeOfString.ts, 39, 23))

function f10(x: any) { }
>f10 : Symbol(f10, Decl(stringLiteralTypeIsSubtypeOfString.ts, 64, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 67, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 68, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 69, 13))

interface I extends String {
>I : Symbol(I, Decl(stringLiteralTypeIsSubtypeOfString.ts, 69, 24))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

    foo: string;
>foo : Symbol(I.foo, Decl(stringLiteralTypeIsSubtypeOfString.ts, 71, 28))
}

// BUG 831846
function f11(x: 'a');
>f11 : Symbol(f11, Decl(stringLiteralTypeIsSubtypeOfString.ts, 73, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 76, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 77, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 76, 13))

function f11(x: I);
>f11 : Symbol(f11, Decl(stringLiteralTypeIsSubtypeOfString.ts, 73, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 76, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 77, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 77, 13))
>I : Symbol(I, Decl(stringLiteralTypeIsSubtypeOfString.ts, 69, 24))

function f11(x: any) { }
>f11 : Symbol(f11, Decl(stringLiteralTypeIsSubtypeOfString.ts, 73, 1), Decl(stringLiteralTypeIsSubtypeOfString.ts, 76, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 77, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 78, 13))

function f12<T>(x: 'a');
>f12 : Symbol(f12, Decl(stringLiteralTypeIsSubtypeOfString.ts, 78, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 80, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 22))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 80, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 80, 16))

function f12<T>(x: T);
>f12 : Symbol(f12, Decl(stringLiteralTypeIsSubtypeOfString.ts, 78, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 80, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 22))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 16))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 13))

function f12<T>(x: any) { }
>f12 : Symbol(f12, Decl(stringLiteralTypeIsSubtypeOfString.ts, 78, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 80, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 81, 22))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 82, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 82, 16))

function f13<T extends String>(x: 'a');
>f13 : Symbol(f13, Decl(stringLiteralTypeIsSubtypeOfString.ts, 82, 27), Decl(stringLiteralTypeIsSubtypeOfString.ts, 84, 39), Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 37))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 84, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 84, 31))

function f13<T extends String>(x: T);
>f13 : Symbol(f13, Decl(stringLiteralTypeIsSubtypeOfString.ts, 82, 27), Decl(stringLiteralTypeIsSubtypeOfString.ts, 84, 39), Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 37))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 31))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 13))

function f13<T extends String>(x: any) { }
>f13 : Symbol(f13, Decl(stringLiteralTypeIsSubtypeOfString.ts, 82, 27), Decl(stringLiteralTypeIsSubtypeOfString.ts, 84, 39), Decl(stringLiteralTypeIsSubtypeOfString.ts, 85, 37))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 86, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 86, 31))

enum E { A }
>E : Symbol(E, Decl(stringLiteralTypeIsSubtypeOfString.ts, 86, 42))
>A : Symbol(E.A, Decl(stringLiteralTypeIsSubtypeOfString.ts, 88, 8))

function f14(x: 'a');
>f14 : Symbol(f14, Decl(stringLiteralTypeIsSubtypeOfString.ts, 88, 12), Decl(stringLiteralTypeIsSubtypeOfString.ts, 89, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 90, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 89, 13))

function f14(x: E);
>f14 : Symbol(f14, Decl(stringLiteralTypeIsSubtypeOfString.ts, 88, 12), Decl(stringLiteralTypeIsSubtypeOfString.ts, 89, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 90, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 90, 13))
>E : Symbol(E, Decl(stringLiteralTypeIsSubtypeOfString.ts, 86, 42))

function f14(x: any) { }
>f14 : Symbol(f14, Decl(stringLiteralTypeIsSubtypeOfString.ts, 88, 12), Decl(stringLiteralTypeIsSubtypeOfString.ts, 89, 21), Decl(stringLiteralTypeIsSubtypeOfString.ts, 90, 19))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 91, 13))

function f15<T, U extends T>(x: 'a');
>f15 : Symbol(f15, Decl(stringLiteralTypeIsSubtypeOfString.ts, 91, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 37), Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 35))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 13))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 15))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 29))

function f15<T, U extends T>(x: U);
>f15 : Symbol(f15, Decl(stringLiteralTypeIsSubtypeOfString.ts, 91, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 37), Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 35))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 13))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 15))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 29))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 15))

function f15<T, U extends T>(x: any) { }
>f15 : Symbol(f15, Decl(stringLiteralTypeIsSubtypeOfString.ts, 91, 24), Decl(stringLiteralTypeIsSubtypeOfString.ts, 93, 37), Decl(stringLiteralTypeIsSubtypeOfString.ts, 94, 35))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 13))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 15))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 29))

function f16<T extends String, U extends T>(x: 'a');
>f16 : Symbol(f16, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 40), Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 52), Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 50))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 30))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 44))

function f16<T extends String, U extends T>(x: U);
>f16 : Symbol(f16, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 40), Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 52), Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 50))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 30))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 44))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 30))

function f16<T extends String, U extends T>(x: any) { }
>f16 : Symbol(f16, Decl(stringLiteralTypeIsSubtypeOfString.ts, 95, 40), Decl(stringLiteralTypeIsSubtypeOfString.ts, 97, 52), Decl(stringLiteralTypeIsSubtypeOfString.ts, 98, 50))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 99, 13))
>String : Symbol(String, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>U : Symbol(U, Decl(stringLiteralTypeIsSubtypeOfString.ts, 99, 30))
>T : Symbol(T, Decl(stringLiteralTypeIsSubtypeOfString.ts, 99, 13))
>x : Symbol(x, Decl(stringLiteralTypeIsSubtypeOfString.ts, 99, 44))