@@ -282,78 +282,98 @@ function f11() {
282
282
let x = [];
283
283
>x : Symbol(x, Decl(controlFlowArrays.ts, 114, 7))
284
284
285
- return x; // never[]
285
+ if (x.length === 0) { // x.length ok on implicit any[]
286
+ >x.length : Symbol(Array.length, Decl(lib.d.ts, --, --))
287
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 114, 7))
288
+ >length : Symbol(Array.length, Decl(lib.d.ts, --, --))
289
+
290
+ x.push("hello");
291
+ >x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
292
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 114, 7))
293
+ >push : Symbol(Array.push, Decl(lib.d.ts, --, --))
294
+ }
295
+ return x;
286
296
>x : Symbol(x, Decl(controlFlowArrays.ts, 114, 7))
287
297
}
288
298
289
299
function f12() {
290
- >f12 : Symbol(f12, Decl(controlFlowArrays.ts, 116 , 1))
300
+ >f12 : Symbol(f12, Decl(controlFlowArrays.ts, 119 , 1))
291
301
292
302
let x;
293
- >x : Symbol(x, Decl(controlFlowArrays.ts, 119 , 7))
303
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 122 , 7))
294
304
295
305
x = [];
296
- >x : Symbol(x, Decl(controlFlowArrays.ts, 119, 7))
306
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 122, 7))
307
+
308
+ if (x.length === 0) { // x.length ok on implicit any[]
309
+ >x.length : Symbol(Array.length, Decl(lib.d.ts, --, --))
310
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 122, 7))
311
+ >length : Symbol(Array.length, Decl(lib.d.ts, --, --))
297
312
298
- return x; // never[]
299
- >x : Symbol(x, Decl(controlFlowArrays.ts, 119, 7))
313
+ x.push("hello");
314
+ >x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
315
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 122, 7))
316
+ >push : Symbol(Array.push, Decl(lib.d.ts, --, --))
317
+ }
318
+ return x;
319
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 122, 7))
300
320
}
301
321
302
322
function f13() {
303
- >f13 : Symbol(f13, Decl(controlFlowArrays.ts, 122 , 1))
323
+ >f13 : Symbol(f13, Decl(controlFlowArrays.ts, 128 , 1))
304
324
305
325
var x = [];
306
- >x : Symbol(x, Decl(controlFlowArrays.ts, 125 , 7))
326
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 131 , 7))
307
327
308
328
x.push(5);
309
329
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
310
- >x : Symbol(x, Decl(controlFlowArrays.ts, 125 , 7))
330
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 131 , 7))
311
331
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
312
332
313
333
x.push("hello");
314
334
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
315
- >x : Symbol(x, Decl(controlFlowArrays.ts, 125 , 7))
335
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 131 , 7))
316
336
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
317
337
318
338
x.push(true);
319
339
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
320
- >x : Symbol(x, Decl(controlFlowArrays.ts, 125 , 7))
340
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 131 , 7))
321
341
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
322
342
323
343
return x; // (string | number | boolean)[]
324
- >x : Symbol(x, Decl(controlFlowArrays.ts, 125 , 7))
344
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 131 , 7))
325
345
}
326
346
327
347
function f14() {
328
- >f14 : Symbol(f14, Decl(controlFlowArrays.ts, 130 , 1))
348
+ >f14 : Symbol(f14, Decl(controlFlowArrays.ts, 136 , 1))
329
349
330
350
const x = [];
331
- >x : Symbol(x, Decl(controlFlowArrays.ts, 133 , 9))
351
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 139 , 9))
332
352
333
353
x.push(5);
334
354
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
335
- >x : Symbol(x, Decl(controlFlowArrays.ts, 133 , 9))
355
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 139 , 9))
336
356
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
337
357
338
358
x.push("hello");
339
359
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
340
- >x : Symbol(x, Decl(controlFlowArrays.ts, 133 , 9))
360
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 139 , 9))
341
361
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
342
362
343
363
x.push(true);
344
364
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
345
- >x : Symbol(x, Decl(controlFlowArrays.ts, 133 , 9))
365
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 139 , 9))
346
366
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
347
367
348
368
return x; // (string | number | boolean)[]
349
- >x : Symbol(x, Decl(controlFlowArrays.ts, 133 , 9))
369
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 139 , 9))
350
370
}
351
371
352
372
function f15() {
353
- >f15 : Symbol(f15, Decl(controlFlowArrays.ts, 138 , 1))
373
+ >f15 : Symbol(f15, Decl(controlFlowArrays.ts, 144 , 1))
354
374
355
375
let x = [];
356
- >x : Symbol(x, Decl(controlFlowArrays.ts, 141 , 7))
376
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 147 , 7))
357
377
358
378
while (cond()) {
359
379
>cond : Symbol(cond, Decl(controlFlowArrays.ts, 0, 0))
@@ -363,88 +383,88 @@ function f15() {
363
383
364
384
x.push("hello");
365
385
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
366
- >x : Symbol(x, Decl(controlFlowArrays.ts, 141 , 7))
386
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 147 , 7))
367
387
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
368
388
}
369
389
return x; // string[]
370
- >x : Symbol(x, Decl(controlFlowArrays.ts, 141 , 7))
390
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 147 , 7))
371
391
}
372
392
373
393
function f16() {
374
- >f16 : Symbol(f16, Decl(controlFlowArrays.ts, 147 , 1))
394
+ >f16 : Symbol(f16, Decl(controlFlowArrays.ts, 153 , 1))
375
395
376
396
let x;
377
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
397
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
378
398
379
399
let y;
380
- >y : Symbol(y, Decl(controlFlowArrays.ts, 151 , 7))
400
+ >y : Symbol(y, Decl(controlFlowArrays.ts, 157 , 7))
381
401
382
402
(x = [], x).push(5);
383
403
>(x = [], x).push : Symbol(Array.push, Decl(lib.d.ts, --, --))
384
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
385
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
404
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
405
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
386
406
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
387
407
388
408
(x.push("hello"), x).push(true);
389
409
>(x.push("hello"), x).push : Symbol(Array.push, Decl(lib.d.ts, --, --))
390
410
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
391
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
411
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
392
412
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
393
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
413
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
394
414
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
395
415
396
416
((x))[3] = { a: 1 };
397
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
398
- >a : Symbol(a, Decl(controlFlowArrays.ts, 154 , 16))
417
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
418
+ >a : Symbol(a, Decl(controlFlowArrays.ts, 160 , 16))
399
419
400
420
return x; // (string | number | boolean | { a: number })[]
401
- >x : Symbol(x, Decl(controlFlowArrays.ts, 150 , 7))
421
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 156 , 7))
402
422
}
403
423
404
424
function f17() {
405
- >f17 : Symbol(f17, Decl(controlFlowArrays.ts, 156 , 1))
425
+ >f17 : Symbol(f17, Decl(controlFlowArrays.ts, 162 , 1))
406
426
407
427
let x = [];
408
- >x : Symbol(x, Decl(controlFlowArrays.ts, 159 , 7))
428
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 165 , 7))
409
429
410
430
x.unshift(5);
411
431
>x.unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
412
- >x : Symbol(x, Decl(controlFlowArrays.ts, 159 , 7))
432
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 165 , 7))
413
433
>unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
414
434
415
435
x.unshift("hello");
416
436
>x.unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
417
- >x : Symbol(x, Decl(controlFlowArrays.ts, 159 , 7))
437
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 165 , 7))
418
438
>unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
419
439
420
440
x.unshift(true);
421
441
>x.unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
422
- >x : Symbol(x, Decl(controlFlowArrays.ts, 159 , 7))
442
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 165 , 7))
423
443
>unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
424
444
425
445
return x; // (string | number | boolean)[]
426
- >x : Symbol(x, Decl(controlFlowArrays.ts, 159 , 7))
446
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 165 , 7))
427
447
}
428
448
429
449
function f18() {
430
- >f18 : Symbol(f18, Decl(controlFlowArrays.ts, 164 , 1))
450
+ >f18 : Symbol(f18, Decl(controlFlowArrays.ts, 170 , 1))
431
451
432
452
let x = [];
433
- >x : Symbol(x, Decl(controlFlowArrays.ts, 167 , 7))
453
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 173 , 7))
434
454
435
455
x.push(5);
436
456
>x.push : Symbol(Array.push, Decl(lib.d.ts, --, --))
437
- >x : Symbol(x, Decl(controlFlowArrays.ts, 167 , 7))
457
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 173 , 7))
438
458
>push : Symbol(Array.push, Decl(lib.d.ts, --, --))
439
459
440
460
x.unshift("hello");
441
461
>x.unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
442
- >x : Symbol(x, Decl(controlFlowArrays.ts, 167 , 7))
462
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 173 , 7))
443
463
>unshift : Symbol(Array.unshift, Decl(lib.d.ts, --, --))
444
464
445
465
x[2] = true;
446
- >x : Symbol(x, Decl(controlFlowArrays.ts, 167 , 7))
466
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 173 , 7))
447
467
448
468
return x; // (string | number | boolean)[]
449
- >x : Symbol(x, Decl(controlFlowArrays.ts, 167 , 7))
469
+ >x : Symbol(x, Decl(controlFlowArrays.ts, 173 , 7))
450
470
}
0 commit comments