diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index 85c95a73bb..4a9e321d2f 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -2,7 +2,7 @@ interface IteratorResult { done: boolean; - value?: T; + value: T; } interface Iterator { diff --git a/tests/baselines/reference/iteratorsAndStrictNullChecks.js b/tests/baselines/reference/iteratorsAndStrictNullChecks.js new file mode 100644 index 0000000000..97007917de --- /dev/null +++ b/tests/baselines/reference/iteratorsAndStrictNullChecks.js @@ -0,0 +1,22 @@ +//// [iteratorsAndStrictNullChecks.ts] + +// for..of +for (const x of ["a", "b"]) { + x.substring; +} + +// Spread +const xs = [1, 2, 3]; +const ys = [4, 5]; +xs.push(...ys); + + +//// [iteratorsAndStrictNullChecks.js] +// for..of +for (const x of ["a", "b"]) { + x.substring; +} +// Spread +const xs = [1, 2, 3]; +const ys = [4, 5]; +xs.push(...ys); diff --git a/tests/baselines/reference/iteratorsAndStrictNullChecks.symbols b/tests/baselines/reference/iteratorsAndStrictNullChecks.symbols new file mode 100644 index 0000000000..8201a845a0 --- /dev/null +++ b/tests/baselines/reference/iteratorsAndStrictNullChecks.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/iteratorsAndStrictNullChecks.ts === + +// for..of +for (const x of ["a", "b"]) { +>x : Symbol(x, Decl(iteratorsAndStrictNullChecks.ts, 2, 10)) + + x.substring; +>x.substring : Symbol(String.substring, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(iteratorsAndStrictNullChecks.ts, 2, 10)) +>substring : Symbol(String.substring, Decl(lib.es5.d.ts, --, --)) +} + +// Spread +const xs = [1, 2, 3]; +>xs : Symbol(xs, Decl(iteratorsAndStrictNullChecks.ts, 7, 5)) + +const ys = [4, 5]; +>ys : Symbol(ys, Decl(iteratorsAndStrictNullChecks.ts, 8, 5)) + +xs.push(...ys); +>xs.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>xs : Symbol(xs, Decl(iteratorsAndStrictNullChecks.ts, 7, 5)) +>push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --)) +>ys : Symbol(ys, Decl(iteratorsAndStrictNullChecks.ts, 8, 5)) + diff --git a/tests/baselines/reference/iteratorsAndStrictNullChecks.types b/tests/baselines/reference/iteratorsAndStrictNullChecks.types new file mode 100644 index 0000000000..ce1d7430f7 --- /dev/null +++ b/tests/baselines/reference/iteratorsAndStrictNullChecks.types @@ -0,0 +1,37 @@ +=== tests/cases/compiler/iteratorsAndStrictNullChecks.ts === + +// for..of +for (const x of ["a", "b"]) { +>x : string +>["a", "b"] : string[] +>"a" : string +>"b" : string + + x.substring; +>x.substring : (start: number, end?: number | undefined) => string +>x : string +>substring : (start: number, end?: number | undefined) => string +} + +// Spread +const xs = [1, 2, 3]; +>xs : number[] +>[1, 2, 3] : number[] +>1 : number +>2 : number +>3 : number + +const ys = [4, 5]; +>ys : number[] +>[4, 5] : number[] +>4 : number +>5 : number + +xs.push(...ys); +>xs.push(...ys) : number +>xs.push : (...items: number[]) => number +>xs : number[] +>push : (...items: number[]) => number +>...ys : number +>ys : number[] + diff --git a/tests/cases/compiler/iteratorsAndStrictNullChecks.ts b/tests/cases/compiler/iteratorsAndStrictNullChecks.ts new file mode 100644 index 0000000000..5bc4334387 --- /dev/null +++ b/tests/cases/compiler/iteratorsAndStrictNullChecks.ts @@ -0,0 +1,12 @@ +// @target : ES6 +// @strictNullChecks: true + +// for..of +for (const x of ["a", "b"]) { + x.substring; +} + +// Spread +const xs = [1, 2, 3]; +const ys = [4, 5]; +xs.push(...ys);