Hide omitted expression types in type baselines

This commit is contained in:
Jake Bailey
2025-03-27 15:13:48 -07:00
parent caf36c469b
commit 35f3c599a5
71 changed files with 8 additions and 501 deletions
+4
View File
@@ -245,6 +245,10 @@ export class TypeWriterWalker {
return undefined;
}
if (ts.isOmittedExpression(node)) {
return undefined;
}
// Workaround to ensure we output 'C' instead of 'typeof C' for base class expressions
// let type = this.checker.getTypeAtLocation(node);
let type = ts.isExpressionWithTypeArgumentsInClassExtendsClause(node.parent) ? this.checker.getTypeAtLocation(node.parent) : undefined;
@@ -7,12 +7,8 @@ var results: string[];
{
let [, b, , a] = results;
> : undefined
> : ^^^^^^^^^
>b : string
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>a : string
> : ^^^^^^
>results : string[]
@@ -38,26 +34,12 @@ var results: string[];
function f([, a, , b, , , , s, , , ] = results) {
>f : ([, a, , b, , , , s, , ,]?: string[]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>a : string
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>b : string
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>s : string
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>results : string[]
> : ^^^^^^^^
@@ -14,10 +14,6 @@ var a = [,,];
> : ^^^^^
>[,,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
var a = [null, null];
>a : any[]
@@ -112,8 +108,6 @@ var d = [, x];
> : ^^^^^^^^^^^
>[, x] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>x : undefined
> : ^^^^^^^^^
@@ -15,10 +15,6 @@ var a0 = [,, 2, 3, 4]
> : ^^^^^^^^
>[,, 2, 3, 4] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>2 : 2
> : ^
>3 : 3
@@ -41,12 +37,6 @@ var a2 = [, , , ...a0, "hello"];
> : ^^^^^^^^^^^^^^^^^^^
>[, , , ...a0, "hello"] : (string | number)[]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>...a0 : number
> : ^^^^^^
>a0 : number[]
@@ -59,10 +49,6 @@ var a3 = [,, ...a0]
> : ^^^^^^^^
>[,, ...a0] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>...a0 : number
> : ^^^^^^
>a0 : number[]
@@ -87,8 +73,6 @@ var a5 = [...a0, , ]
> : ^^^^^^
>a0 : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
// Each element expression in a non-empty array literal is processed as follows:
// - If the array literal contains no spread elements, and if the array literal is contextually typed (section 4.19)
@@ -15,10 +15,6 @@ var a0 = [, , 2, 3, 4]
> : ^^^^^^^^
>[, , 2, 3, 4] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>2 : 2
> : ^
>3 : 3
@@ -41,12 +37,6 @@ var a2 = [, , , ...a0, "hello"];
> : ^^^^^^^^^^^^^^^^^^^
>[, , , ...a0, "hello"] : (string | number)[]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>...a0 : number
> : ^^^^^^
>a0 : number[]
@@ -59,10 +49,6 @@ var a3 = [, , ...a0]
> : ^^^^^^^^
>[, , ...a0] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>...a0 : number
> : ^^^^^^
>a0 : number[]
@@ -87,8 +73,6 @@ var a5 = [...a0, , ]
> : ^^^^^^
>a0 : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
// Each element expression in a non-empty array literal is processed as follows:
// - If the array literal contains no spread elements, and if the array literal is contextually typed (section 4.19)
@@ -103,8 +103,6 @@ var p3 = ([, a]) => { };
> : ^ ^^^^^^^^^^^^^^^^^^^^^
>([, a]) => { } : ([, a]: [any, any]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>a : any
> : ^^^
@@ -113,8 +111,6 @@ var p4 = ([, ...a]) => { };
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([, ...a]) => { } : ([, ...a]: [any?, ...any[]]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>a : any[]
> : ^^^^^
@@ -162,8 +162,6 @@ async function fn14(x) {
>x : any
var [, x] = y;
> : undefined
> : ^^^^^^^^^
>x : any
> : ^^^
>y : any
@@ -2,14 +2,6 @@
=== bindingPatternOmittedExpressionNesting.ts ===
export let [,,[,[],,[],]] = undefined as any;
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>undefined as any : any
>undefined : undefined
> : ^^^^^^^^^
@@ -396,8 +396,6 @@ buildOverload("updateImportDeclaration")
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)) : ([, modifiers, importClause, moduleSpecifier, assertClause, other]: [node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined] | [node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined]) => boolean
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>modifiers : readonly Decorator[] | readonly Modifier[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>importClause : ImportClause | readonly Modifier[] | undefined
@@ -508,8 +506,6 @@ buildOverload("updateImportDeclaration")
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)) : ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]: [node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined] | [node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined]) => boolean
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>decorators : readonly Decorator[] | readonly Modifier[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>modifiers : ImportClause | readonly Modifier[] | undefined
@@ -6,8 +6,4 @@ const array = [,, /* comment */];
> : ^^^^^
>[,, /* comment */] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -8,8 +8,5 @@ const array = [
> : ^^^^^^^^^^^
, /* comment */
> : undefined
> : ^^^^^^^^^
];
@@ -8,10 +8,5 @@ const array = [
> : ^^^^^^^^^^^
,, /* comment */
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
];
@@ -18,8 +18,5 @@ const array = [
> : ^
/* end of element 2 */, ,
> : undefined
> : ^^^^^^^^^
/* extra comment */
];
@@ -4,18 +4,12 @@
function baz([, z, , ]) { }
>baz : ([, z, ,]: [any, any, any?]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>z : any
> : ^^^
> : undefined
> : ^^^^^^^^^
function foo([, b, ]: [any, any]): void { }
>foo : ([, b,]: [any, any]) => void
> : ^ ^^ ^^^^^
> : undefined
> : ^^^^^^^^^
>b : any
> : ^^^
@@ -24,20 +18,12 @@ function bar([z, , , ]) { }
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z : any
> : ^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
function bar1([z, , , ] = [1, 3, 4, 6, 7]) { }
>bar1 : ([z, , ,]?: [number, number, number, number, number]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>z : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[1, 3, 4, 6, 7] : [number, number, number, number, number]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>1 : 1
@@ -54,14 +40,6 @@ function bar1([z, , , ] = [1, 3, 4, 6, 7]) { }
function bar2([,,z, , , ]) { }
>bar2 : ([, , z, , ,]: [any, any, any, any?, any?]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>z : any
> : ^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -32,10 +32,6 @@ var [x1, y1] = [1, "hello"]; // emit x1: number, y1: string
> : ^^^^^^^
var [, , z1] = [0, 1, 2]; // emit z1: number
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>z1 : number
> : ^^^^^^
>[0, 1, 2] : [number, number, number]
@@ -2,10 +2,6 @@
=== declarationEmitDestructuringArrayPattern5.ts ===
var [, , z] = [1, 2, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>z : number
> : ^^^^^^
>[1, 2, 4] : [number, number, number]
@@ -18,12 +14,8 @@ var [, , z] = [1, 2, 4];
> : ^
var [, a, , ] = [3, 4, 5];
> : undefined
> : ^^^^^^^^^
>a : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>[3, 4, 5] : [number, number, number]
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>3 : 3
@@ -34,12 +26,6 @@ var [, a, , ] = [3, 4, 5];
> : ^
var [, , [, b, ]] = [3,5,[0, 1]];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>b : number
> : ^^^^^^
>[3,5,[0, 1]] : [number, number, [number, number]]
@@ -53,10 +53,6 @@ function f0() {
> : ^^^^^^^
var [,, x] = [0, 1, 2];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>x : number
> : ^^^^^^
>[0, 1, 2] : [number, number, number]
@@ -117,20 +117,10 @@ export { baz, ibaz };
> : ^^^^^^
const [ , one, , [, bee, , [, {sec} ]]] = arr;
> : undefined
> : ^^^^^^^^^
>one : 1
> : ^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>bee : "b"
> : ^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>sec : "sec"
> : ^^^^^
>arr : [0, 1, 2, ["a", "b", "c", [{ def: "def"; }, { sec: "sec"; }]]]
@@ -178,8 +178,6 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true];
> : ^^^^
var [, c7] = [1, 2, 3];
> : undefined
> : ^^^^^^^^^
>c7 : number
> : ^^^^^^
>[1, 2, 3] : [number, number, number]
@@ -192,12 +190,6 @@ var [, c7] = [1, 2, 3];
> : ^
var [,,, c8] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c8 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -212,12 +204,6 @@ var [,,, c8] = [1, 2, 3, 4];
> : ^
var [,,, c9] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c9 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -232,12 +218,6 @@ var [,,, c9] = [1, 2, 3, 4];
> : ^
var [,,,...c10] = [1, 2, 3, 4, "hello"];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c10 : [number, string]
> : ^^^^^^^^^^^^^^^^
>[1, 2, 3, 4, "hello"] : [number, number, number, number, string]
@@ -178,8 +178,6 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true];
> : ^^^^
var [, c7] = [1, 2, 3];
> : undefined
> : ^^^^^^^^^
>c7 : number
> : ^^^^^^
>[1, 2, 3] : [number, number, number]
@@ -192,12 +190,6 @@ var [, c7] = [1, 2, 3];
> : ^
var [,,, c8] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c8 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -212,12 +204,6 @@ var [,,, c8] = [1, 2, 3, 4];
> : ^
var [,,, c9] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c9 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -232,12 +218,6 @@ var [,,, c9] = [1, 2, 3, 4];
> : ^
var [,,,...c10] = [1, 2, 3, 4, "hello"];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c10 : [number, string]
> : ^^^^^^^^^^^^^^^^
>[1, 2, 3, 4, "hello"] : [number, number, number, number, string]
@@ -178,8 +178,6 @@ var [[c5], c6]: [[string|number], boolean] = [[1], true];
> : ^^^^
var [, c7] = [1, 2, 3];
> : undefined
> : ^^^^^^^^^
>c7 : number
> : ^^^^^^
>[1, 2, 3] : [number, number, number]
@@ -192,12 +190,6 @@ var [, c7] = [1, 2, 3];
> : ^
var [,,, c8] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c8 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -212,12 +204,6 @@ var [,,, c8] = [1, 2, 3, 4];
> : ^
var [,,, c9] = [1, 2, 3, 4];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c9 : number
> : ^^^^^^
>[1, 2, 3, 4] : [number, number, number, number]
@@ -232,12 +218,6 @@ var [,,, c9] = [1, 2, 3, 4];
> : ^
var [,,,...c10] = [1, 2, 3, 4, "hello"];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>c10 : [number, string]
> : ^^^^^^^^^^^^^^^^
>[1, 2, 3, 4, "hello"] : [number, number, number, number, string]
@@ -180,8 +180,6 @@ interface F1 {
> : ^^^
>y : any
> : ^^^
> : undefined
> : ^^^^^^^^^
>a : any
> : ^^^
>b : any
@@ -180,8 +180,6 @@ interface F1 {
> : ^^^
>y : any
> : ^^^
> : undefined
> : ^^^^^^^^^
>a : any
> : ^^^
>b : any
@@ -183,8 +183,6 @@ interface F1 {
> : ^^^
>y : any
> : ^^^
> : undefined
> : ^^^^^^^^^
>a : any
> : ^^^
>b : any
@@ -263,8 +263,6 @@ var {f: [f1, f2, { f3: f4, f5 }, , ]} = { f: [1, 2, { f3: 4, f5: 0 }] };
> : ^^^^^^
>f5 : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>{ f: [1, 2, { f3: 4, f5: 0 }] } : { f: [number, number, { f3: number; f5: number; }]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>f : [number, number, { f3: number; f5: number; }]
@@ -263,8 +263,6 @@ var {f: [f1, f2, { f3: f4, f5 }, , ]} = { f: [1, 2, { f3: 4, f5: 0 }] };
> : ^^^^^^
>f5 : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>{ f: [1, 2, { f3: 4, f5: 0 }] } : { f: [number, number, { f3: number; f5: number; }]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>f : [number, number, { f3: number; f5: number; }]
@@ -263,8 +263,6 @@ var {f: [f1, f2, { f3: f4, f5 }, , ]} = { f: [1, 2, { f3: 4, f5: 0 }] };
> : ^^^^^^
>f5 : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>{ f: [1, 2, { f3: 4, f5: 0 }] } : { f: [number, number, { f3: number; f5: number; }]; }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>f : [number, number, { f3: number; f5: number; }]
@@ -103,8 +103,6 @@ var [c1, c2, { c3: c4, c5 }, , ...c6] = [1, 2, { c3: 4, c5: 0 }]; // Error
> : ^^^^^^
>c5 : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>c6 : []
> : ^^
>[1, 2, { c3: 4, c5: 0 }] : [number, number, { c3: number; c5: number; }]
@@ -91,8 +91,6 @@ var p3 = ([, a]) => { };
> : ^ ^^^^^^^^^^^^^^^^^^^^^
>([, a]) => { } : ([, a]: [any, any]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>a : any
> : ^^^
@@ -101,8 +99,6 @@ var p4 = ([, ...a]) => { };
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>([, ...a]) => { } : ([, ...a]: [any?, ...any[]]) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>a : any[]
> : ^^^^^
@@ -19,8 +19,6 @@ var a: any;
>a : any
var [,] = [1,2];
> : undefined
> : ^^^^^^^^^
>[1,2] : [number, number]
> : ^^^^^^^^^^^^^^^^
>1 : 1
@@ -5,8 +5,6 @@
const [a, , b] = [1, 2, 3];
>a : number
> : ^^^^^^
> : undefined
> : ^^^^^^^^^
>b : number
> : ^^^^^^
>[1, 2, 3] : [number, number, number]
@@ -80,8 +80,6 @@ const repro_43249 = (value: unknown) => {
> : ^^
const [, extracted] = match;
> : undefined
> : ^^^^^^^^^
>extracted : string
> : ^^^^^^
>match : RegExpMatchArray | []
@@ -2,8 +2,6 @@
=== initializedDestructuringAssignmentTypes.ts ===
const [, a = ''] = ''.match('') || [];
> : undefined
> : ^^^^^^^^^
>a : string
> : ^^^^^^
>'' : ""
@@ -893,10 +893,6 @@ export const { a } = { a: 1 };
> : ^
export const [, , b = 1]: [number, number, number | undefined] = [0, 1, 2];
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>b : number
> : ^^^^^^
>1 : 1
@@ -913,10 +909,6 @@ export const [, , b = 1]: [number, number, number | undefined] = [0, 1, 2];
export function foo([, , b]: [
>foo : ([, , b]?: [number, number, number]) => void
> : ^ ^^^ ^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>b : number
> : ^^^^^^
@@ -49,10 +49,6 @@ s2.push(undefined); // Should error, 'undefined' not part of s2's element type
// Destructuring a rest element -> do not include undefined
const [, , ...s3] = strArray;
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>s3 : string[]
> : ^^^^^^^^
>strArray : string[]
@@ -307,12 +303,6 @@ declare let target_string_arr: string[];
> : ^^^^^^^^
>[,,, ...target_string_arr] : [undefined, undefined, undefined, ...string[]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>...target_string_arr : string
> : ^^^^^^
>target_string_arr : string[]
@@ -2,22 +2,16 @@
=== omittedExpressionForOfLoop.ts ===
for (const [,] of doesNotExist) {
> : undefined
> : ^^^^^^^^^
>doesNotExist : any
> : ^^^
}
for (const [,] of undefined) {
> : undefined
> : ^^^^^^^^^
>undefined : undefined
> : ^^^^^^^^^
}
for (const [,] of []) {
> : undefined
> : ^^^^^^^^^
>[] : never[]
> : ^^^^^^^
}
@@ -223,8 +223,6 @@ t3 = [42,,true]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
>42 : 42
> : ^^
> : undefined
> : ^^^^^^^^^
>true : true
> : ^^^^
@@ -259,8 +257,6 @@ t4 = [42,,true];
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
>42 : 42
> : ^^
> : undefined
> : ^^^^^^^^^
>true : true
> : ^^^^
@@ -271,8 +267,6 @@ t4 = [,"hello", true];
> : ^^
>[,"hello", true] : [undefined, string, true]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>"hello" : "hello"
> : ^^^^^^^
>true : true
@@ -285,10 +279,6 @@ t4 = [,,true];
> : ^^
>[,,true] : [undefined, undefined, true]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>true : true
> : ^^^^
@@ -8,8 +8,6 @@ var v = [1,,1];
> : ^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
@@ -8,10 +8,6 @@ var v = [1,,,1];
> : ^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
@@ -8,12 +8,8 @@ var v = [1,,1,,1];
> : ^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
@@ -6,26 +6,16 @@ var v = [,,1,1,,1,,1,1,,1];
> : ^^^^^^^^
>[,,1,1,,1,,1,1,,1] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
@@ -6,26 +6,16 @@ var v = [,,1,1,,1,,1,1,,1,];
> : ^^^^^^^^
>[,,1,1,,1,,1,1,,1,] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
>1 : 1
> : ^
@@ -6,6 +6,4 @@ var v = [,];
> : ^^^^^
>[,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -6,8 +6,4 @@ var v = [,,];
> : ^^^^^
>[,,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -6,10 +6,4 @@ var v = [,,,];
> : ^^^^^
>[,,,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -6,8 +6,6 @@ var v = [,1];
> : ^^^^^^^^
>[,1] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
@@ -6,8 +6,6 @@ var v = [,1,];
> : ^^^^^^^^
>[,1,] : number[]
> : ^^^^^^^^
> : undefined
> : ^^^^^^^^^
>1 : 1
> : ^
@@ -36,10 +36,6 @@ function d(...[a, , , d]: [boolean, string, number]) { }
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>a : boolean
> : ^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>d : undefined
> : ^^^^^^^^^
@@ -77,8 +77,6 @@ function getMultiRobot() {
}
for (let [, nameA] = robotA, i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robotA : Robot
@@ -111,8 +109,6 @@ for (let [, nameA] = robotA, i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, nameA] = getRobot(), i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>getRobot() : Robot
@@ -147,8 +143,6 @@ for (let [, nameA] = getRobot(), i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, nameA] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>[2, "trimmer", "trimming"] : [number, string, string]
@@ -187,8 +181,6 @@ for (let [, nameA] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -223,8 +215,6 @@ for (let [, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++)
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -261,8 +251,6 @@ for (let [, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -119,8 +119,6 @@ for ([, nameA] = robotA, i = 0; i < 1; i++) {
> : ^^^^^
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robotA : Robot
@@ -161,8 +159,6 @@ for ([, nameA] = getRobot(), i = 0; i < 1; i++) {
> : ^^^^^
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>getRobot() : Robot
@@ -205,8 +201,6 @@ for ([, nameA] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>[2, "trimmer", "trimming"] : [number, string, string]
@@ -253,8 +247,6 @@ for ([, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
> : ^^^^^^^^^^^^^^^^^
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -299,8 +291,6 @@ for ([, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++)
> : ^^^^^^^^^^^^^^^^^
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -347,8 +337,6 @@ for ([, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]],
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -77,8 +77,6 @@ function getMultiRobot() {
}
for (let [, nameA ="name"] = robotA, i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"name" : "name"
@@ -113,8 +111,6 @@ for (let [, nameA ="name"] = robotA, i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, nameA = "name"] = getRobot(), i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"name" : "name"
@@ -151,8 +147,6 @@ for (let [, nameA = "name"] = getRobot(), i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, nameA = "name"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"name" : "name"
@@ -193,9 +187,6 @@ for (let [, nameA = "name"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -245,9 +236,6 @@ for (let [, [
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -299,9 +287,6 @@ for (let [, [
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -119,8 +119,6 @@ for ([, nameA = "name"] = robotA, i = 0; i < 1; i++) {
> : ^^^^^
>[, nameA = "name"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "name" : "name"
> : ^^^^^^
>nameA : string
@@ -165,8 +163,6 @@ for ([, nameA = "name"] = getRobot(), i = 0; i < 1; i++) {
> : ^^^^^
>[, nameA = "name"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "name" : "name"
> : ^^^^^^
>nameA : string
@@ -213,8 +209,6 @@ for ([, nameA = "name"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>[, nameA = "name"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "name" : "name"
> : ^^^^^^
>nameA : string
@@ -265,8 +259,6 @@ for ([, [
> : ^^^^^^^^^^^^^^^^^
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -333,8 +325,6 @@ for ([, [
> : ^^^^^^^^^^^^^^^^^
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -403,8 +393,6 @@ for ([, [
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["none", "none"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -109,8 +109,6 @@ function getMultiRobots() {
}
for (let [, nameA] of robots) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robots : Robot[]
@@ -129,8 +127,6 @@ for (let [, nameA] of robots) {
> : ^^^^^^
}
for (let [, nameA] of getRobots()) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>getRobots() : Robot[]
@@ -151,8 +147,6 @@ for (let [, nameA] of getRobots()) {
> : ^^^^^^
}
for (let [, nameA] of [robotA, robotB]) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>[robotA, robotB] : Robot[]
@@ -175,8 +169,6 @@ for (let [, nameA] of [robotA, robotB]) {
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -197,8 +189,6 @@ for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -221,8 +211,6 @@ for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
> : ^^^^^^
}
for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
> : undefined
> : ^^^^^^^^^
>primarySkillA : string
> : ^^^^^^
>secondarySkillA : string
@@ -143,8 +143,6 @@ let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string
for ([, nameA] of robots) {
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robots : Robot[]
@@ -165,8 +163,6 @@ for ([, nameA] of robots) {
for ([, nameA] of getRobots()) {
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>getRobots() : Robot[]
@@ -189,8 +185,6 @@ for ([, nameA] of getRobots()) {
for ([, nameA] of [robotA, robotB]) {
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>[robotA, robotB] : Robot[]
@@ -215,8 +209,6 @@ for ([, nameA] of [robotA, robotB]) {
for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -241,8 +233,6 @@ for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -269,8 +259,6 @@ for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
>[, [primarySkillA, secondarySkillA]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[primarySkillA, secondarySkillA] : [string, string]
> : ^^^^^^^^^^^^^^^^
>primarySkillA : string
@@ -109,8 +109,6 @@ function getMultiRobots() {
}
for (let [, nameA = "noName"] of robots) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"noName" : "noName"
@@ -131,8 +129,6 @@ for (let [, nameA = "noName"] of robots) {
> : ^^^^^^
}
for (let [, nameA = "noName"] of getRobots()) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"noName" : "noName"
@@ -155,8 +151,6 @@ for (let [, nameA = "noName"] of getRobots()) {
> : ^^^^^^
}
for (let [, nameA = "noName"] of [robotA, robotB]) {
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"noName" : "noName"
@@ -181,9 +175,6 @@ for (let [, nameA = "noName"] of [robotA, robotB]) {
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -219,9 +210,6 @@ for (let [, [
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -259,9 +247,6 @@ for (let [, [
> : ^^^^^^
}
for (let [, [
> : undefined
> : ^^^^^^^^^
primarySkillA = "primary",
>primarySkillA : string
> : ^^^^^^
@@ -143,8 +143,6 @@ let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string
for ([, nameA = "noName"] of robots) {
>[, nameA = "noName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "noName" : "noName"
> : ^^^^^^^^
>nameA : string
@@ -169,8 +167,6 @@ for ([, nameA = "noName"] of robots) {
for ([, nameA = "noName"] of getRobots()) {
>[, nameA = "noName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "noName" : "noName"
> : ^^^^^^^^
>nameA : string
@@ -197,8 +193,6 @@ for ([, nameA = "noName"] of getRobots()) {
for ([, nameA = "noName"] of [robotA, robotB]) {
>[, nameA = "noName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "noName" : "noName"
> : ^^^^^^^^
>nameA : string
@@ -227,8 +221,6 @@ for ([, nameA = "noName"] of [robotA, robotB]) {
for ([, [
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -275,8 +267,6 @@ for ([, [
for ([, [
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -325,8 +315,6 @@ for ([, [
for ([, [
>[, [ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"]] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] = ["skill1", "skill2"] : [string, string]
> : ^^^^^^^^^^^^^^^^
>[ primarySkillA = "primary", secondarySkillA = "secondary"] : [string, string]
@@ -29,8 +29,6 @@ var robotA: Robot = [1, "mower", "mowing"];
function foo1([, nameA]: Robot) {
>foo1 : ([, nameA]: Robot) => void
> : ^ ^^ ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
@@ -31,8 +31,6 @@ var robotA: Robot = ["trimmer", ["trimming", "edging"]];
function foo1([, skillA]: Robot) {
>foo1 : ([, skillA]: Robot) => void
> : ^ ^^ ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>skillA : [string, string]
> : ^^^^^^^^^^^^^^^^
@@ -29,8 +29,6 @@ var robotA: Robot = [1, "mower", "mowing"];
function foo1([, nameA = "noName"]: Robot = [-1, "name", "skill"]) {
>foo1 : ([, nameA]?: Robot) => void
> : ^ ^^^ ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"noName" : "noName"
@@ -31,8 +31,6 @@ var robotA: Robot = ["trimmer", ["trimming", "edging"]];
function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
>foo1 : ([, skillA]?: Robot) => void
> : ^ ^^^ ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>skillA : string[]
> : ^^^^^^^^
>["noSkill", "noSkill"] : string[]
@@ -41,8 +41,6 @@ var robotB: Robot = [2, "trimmer", "trimming"];
let [, nameA] = robotA;
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robotA : Robot
@@ -44,8 +44,6 @@ var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
> : ^^^^^^^^
let [, skillA] = multiRobotA;
> : undefined
> : ^^^^^^^^^
>skillA : [string, string]
> : ^^^^^^^^^^^^^^^^
>multiRobotA : MultiSkilledRobot
@@ -103,8 +103,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^
>[, nameA] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>robotA : Robot
@@ -115,8 +113,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^
>[, nameB] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameB : string
> : ^^^^^^
>getRobotB() : Robot
@@ -129,8 +125,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>[, nameB] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameB : string
> : ^^^^^^
>[2, "trimmer", "trimming"] : [number, string, string]
@@ -147,8 +141,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^^^^^^^^^^^^^
>[, multiSkillB] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB : [string, string]
> : ^^^^^^^^^^^^^^^^
>multiRobotB : MultiSkilledRobot
@@ -159,8 +151,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^^^^^^^^^^^^^
>[, multiSkillB] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB : [string, string]
> : ^^^^^^^^^^^^^^^^
>getMultiRobotB() : MultiSkilledRobot
@@ -173,8 +163,6 @@ let multiRobotAInfo: (string | [string, string])[];
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
>[, multiSkillB] : [undefined, [string, string]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB : [string, string]
> : ^^^^^^^^^^^^^^^^
>["roomba", ["vacuum", "mopping"]] : [string, [string, string]]
@@ -40,8 +40,6 @@ var robotB: Robot = [2, "trimmer", "trimming"];
> : ^^^^^^^^^^
let [, nameA = "noName"] = robotA;
> : undefined
> : ^^^^^^^^^
>nameA : string
> : ^^^^^^
>"noName" : "noName"
@@ -44,8 +44,6 @@ var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
> : ^^^^^^^^
let [, skillA = ["noSkill", "noSkill"]] = multiRobotA;
> : undefined
> : ^^^^^^^^^
>skillA : string[]
> : ^^^^^^^^
>["noSkill", "noSkill"] : string[]
@@ -103,8 +103,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^
>[, nameA = "helloNoName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameA = "helloNoName" : "helloNoName"
> : ^^^^^^^^^^^^^
>nameA : string
@@ -119,8 +117,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^
>[, nameB = "helloNoName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameB = "helloNoName" : "helloNoName"
> : ^^^^^^^^^^^^^
>nameB : string
@@ -137,8 +133,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>[, nameB = "helloNoName"] : [undefined, string]
> : ^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>nameB = "helloNoName" : "helloNoName"
> : ^^^^^^^^^^^^^
>nameB : string
@@ -159,8 +153,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^^^^^^^^^^^^^
>[, multiSkillB = []] : [undefined, undefined[]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB = [] : undefined[]
> : ^^^^^^^^^^^
>multiSkillB : string[]
@@ -175,8 +167,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^^^^^^^^^^^^^
>[, multiSkillB = []] : [undefined, undefined[]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB = [] : undefined[]
> : ^^^^^^^^^^^
>multiSkillB : string[]
@@ -193,8 +183,6 @@ let multiRobotAInfo: (string | string[])[];
> : ^^^^^^^^^^^^^^^^^^
>[, multiSkillB = []] : [undefined, undefined[]]
> : ^^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>multiSkillB = [] : undefined[]
> : ^^^^^^^^^^^
>multiSkillB : string[]
@@ -20,8 +20,6 @@ export function test<N extends number>(singletons: ["a"][], i: N) {
> : ^
const [, ...rest] = singleton;
> : undefined
> : ^^^^^^^^^
>rest : []
> : ^^
>singleton : ["a"][][N]
@@ -30,8 +30,6 @@ var b2 = [,];
> : ^^^^^^^^^^^
>[,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
var b3 = [undefined];
>b3 : undefined[]
@@ -60,8 +58,6 @@ var b5 = [[], [,]];
> : ^^^^^^^
>[,] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
declare function f<T>(x: T): T;
>f : <T>(x: T) => T
@@ -556,8 +556,6 @@ function f5(t: [number, string?, boolean?]) {
> : ^^^^^^^^^^^^^^^^
>42 : 42
> : ^^
> : undefined
> : ^^^^^^^^^
t = [42, , ,];
>t = [42, , ,] : [number, never?, never?]
@@ -568,10 +566,6 @@ function f5(t: [number, string?, boolean?]) {
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>42 : 42
> : ^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
t = [42, , , ,]; // Error
>t = [42, , , ,] : [number, never?, never?, never?]
@@ -582,12 +576,6 @@ function f5(t: [number, string?, boolean?]) {
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>42 : 42
> : ^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
t = [, , true]; // Error
>t = [, , true] : [never?, never?, true?]
@@ -596,10 +584,6 @@ function f5(t: [number, string?, boolean?]) {
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>[, , true] : [never?, never?, true?]
> : ^^^^^^^^^^^^^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>true : true
> : ^^^^
@@ -645,8 +629,6 @@ function f6() {
> : ^
>2 : 2
> : ^
> : undefined
> : ^^^^^^^^^
const t3 = [1, 2, , ,] as const;
>t3 : readonly [1, 2, never?, never?]
@@ -659,10 +641,6 @@ function f6() {
> : ^
>2 : 2
> : ^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
const t4 = [1, , 2] as const;
>t4 : readonly [1, never?, 2?]
@@ -673,8 +651,6 @@ function f6() {
> : ^^^^^^^^^^^^^^^^^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
>2 : 2
> : ^
@@ -687,10 +663,6 @@ function f6() {
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
>2 : 2
> : ^
}
@@ -86,16 +86,10 @@ var a5 = [1, , ];
> : ^^^^^^^^
>1 : 1
> : ^
> : undefined
> : ^^^^^^^^^
var a6 = [, , ];
>a6 : any[]
> : ^^^^^
>[, , ] : undefined[]
> : ^^^^^^^^^^^
> : undefined
> : ^^^^^^^^^
> : undefined
> : ^^^^^^^^^
@@ -35,8 +35,6 @@ function f3([_a, ,__b]) {
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
>_a : any
> : ^^^
> : undefined
> : ^^^^^^^^^
>__b : any
> : ^^^
}