diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index 07b7322dd1a12..b986bc06a3969 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -168,7 +168,7 @@ interface MapConstructor { interface WeakMap {} interface WeakMapConstructor { - new (iterable: Iterable): WeakMap; + new (iterable?: Iterable | null): WeakMap; } interface SetIterator extends IteratorObject { diff --git a/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt b/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt index 8e1b7bb3ff954..bca1e6d3df2e3 100644 --- a/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt +++ b/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt @@ -12,7 +12,7 @@ dissallowSymbolAsWeakType.ts(4,8): error TS2345: Argument of type 'symbol' is no dissallowSymbolAsWeakType.ts(5,8): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'object'. dissallowSymbolAsWeakType.ts(6,11): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'object'. dissallowSymbolAsWeakType.ts(8,16): error TS2769: No overload matches this call. - Overload 1 of 2, '(iterable: Iterable): WeakMap', gave the following error. + Overload 1 of 2, '(iterable?: Iterable | null | undefined): WeakMap', gave the following error. Argument of type '[symbol, false][]' is not assignable to parameter of type 'Iterable'. The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. Type 'IteratorResult<[symbol, false], undefined>' is not assignable to type 'IteratorResult'. @@ -60,7 +60,7 @@ dissallowSymbolAsWeakType.ts(19,14): error TS2345: Argument of type 'symbol' is const wm = new WeakMap([[s, false]]); ~~~~~~~ !!! error TS2769: No overload matches this call. -!!! error TS2769: Overload 1 of 2, '(iterable: Iterable): WeakMap', gave the following error. +!!! error TS2769: Overload 1 of 2, '(iterable?: Iterable | null | undefined): WeakMap', gave the following error. !!! error TS2769: Argument of type '[symbol, false][]' is not assignable to parameter of type 'Iterable'. !!! error TS2769: The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. !!! error TS2769: Type 'IteratorResult<[symbol, false], undefined>' is not assignable to type 'IteratorResult'. diff --git a/tests/baselines/reference/extendingSetWithCheckJs.symbols b/tests/baselines/reference/extendingCollectionsWithCheckJs.symbols similarity index 78% rename from tests/baselines/reference/extendingSetWithCheckJs.symbols rename to tests/baselines/reference/extendingCollectionsWithCheckJs.symbols index 3d5eec300e8ff..1adf6491d1e1c 100644 --- a/tests/baselines/reference/extendingSetWithCheckJs.symbols +++ b/tests/baselines/reference/extendingCollectionsWithCheckJs.symbols @@ -1,8 +1,8 @@ -//// [tests/cases/compiler/extendingSetWithCheckJs.ts] //// +//// [tests/cases/compiler/extendingCollectionsWithCheckJs.ts] //// -=== extendingSetWithCheckJs.ts === +=== extendingCollectionsWithCheckJs.js === class MySet extends Set { ->MySet : Symbol(MySet, Decl(extendingSetWithCheckJs.ts, 0, 0)) +>MySet : Symbol(MySet, Decl(extendingCollectionsWithCheckJs.js, 0, 0)) >Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) constructor() { @@ -12,7 +12,7 @@ class MySet extends Set { } class MyWeakSet extends WeakSet { ->MyWeakSet : Symbol(MyWeakSet, Decl(extendingSetWithCheckJs.ts, 4, 1)) +>MyWeakSet : Symbol(MyWeakSet, Decl(extendingCollectionsWithCheckJs.js, 4, 1)) >WeakSet : Symbol(WeakSet, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) constructor() { @@ -22,7 +22,7 @@ class MyWeakSet extends WeakSet { } class MyMap extends Map { ->MyMap : Symbol(MyMap, Decl(extendingSetWithCheckJs.ts, 10, 1)) +>MyMap : Symbol(MyMap, Decl(extendingCollectionsWithCheckJs.js, 10, 1)) >Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) constructor() { @@ -32,7 +32,7 @@ class MyMap extends Map { } class MyWeakMap extends WeakMap { ->MyWeakMap : Symbol(MyWeakMap, Decl(extendingSetWithCheckJs.ts, 16, 1)) +>MyWeakMap : Symbol(MyWeakMap, Decl(extendingCollectionsWithCheckJs.js, 16, 1)) >WeakMap : Symbol(WeakMap, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) constructor() { @@ -40,3 +40,4 @@ class MyWeakMap extends WeakMap { >super : Symbol(WeakMapConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --)) } } + diff --git a/tests/baselines/reference/extendingSetWithCheckJs.types b/tests/baselines/reference/extendingCollectionsWithCheckJs.types similarity index 84% rename from tests/baselines/reference/extendingSetWithCheckJs.types rename to tests/baselines/reference/extendingCollectionsWithCheckJs.types index 8e2fa141e55de..002f13c4bf855 100644 --- a/tests/baselines/reference/extendingSetWithCheckJs.types +++ b/tests/baselines/reference/extendingCollectionsWithCheckJs.types @@ -1,6 +1,6 @@ -//// [tests/cases/compiler/extendingSetWithCheckJs.ts] //// +//// [tests/cases/compiler/extendingCollectionsWithCheckJs.ts] //// -=== extendingSetWithCheckJs.ts === +=== extendingCollectionsWithCheckJs.js === class MySet extends Set { >MySet : MySet > : ^^^^^ @@ -60,3 +60,4 @@ class MyWeakMap extends WeakMap { > : ^^^^^^^^^^^^^^^^^^ } } + diff --git a/tests/baselines/reference/newMap.errors.txt b/tests/baselines/reference/newMap.errors.txt index 5b24f2962ce9c..ac5cce1f5ed80 100644 --- a/tests/baselines/reference/newMap.errors.txt +++ b/tests/baselines/reference/newMap.errors.txt @@ -5,4 +5,5 @@ newMap.ts(1,9): error TS2743: No overload expects 1 type arguments, but overload new Map(); ~~~~~~ !!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. + new WeakMap(); \ No newline at end of file diff --git a/tests/baselines/reference/newMap.js b/tests/baselines/reference/newMap.js index b279f97b68ebf..027d6e291ac5a 100644 --- a/tests/baselines/reference/newMap.js +++ b/tests/baselines/reference/newMap.js @@ -2,8 +2,10 @@ //// [newMap.ts] new Map(); +new WeakMap(); //// [newMap.js] "use strict"; new Map(); +new WeakMap(); diff --git a/tests/baselines/reference/newMap.symbols b/tests/baselines/reference/newMap.symbols index d36bcb439d787..a18449151bd19 100644 --- a/tests/baselines/reference/newMap.symbols +++ b/tests/baselines/reference/newMap.symbols @@ -4,3 +4,6 @@ new Map(); >Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +new WeakMap(); +>WeakMap : Symbol(WeakMap, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + diff --git a/tests/baselines/reference/newMap.types b/tests/baselines/reference/newMap.types index 5ee1100b302f3..d04382cd361de 100644 --- a/tests/baselines/reference/newMap.types +++ b/tests/baselines/reference/newMap.types @@ -7,3 +7,9 @@ new Map(); >Map : MapConstructor > : ^^^^^^^^^^^^^^ +new WeakMap(); +>new WeakMap() : WeakMap +> : ^^^^^^^^^^^^^^^^^^^^ +>WeakMap : WeakMapConstructor +> : ^^^^^^^^^^^^^^^^^^ + diff --git a/tests/cases/compiler/extendingSetWithCheckJs.ts b/tests/cases/compiler/extendingCollectionsWithCheckJs.ts similarity index 82% rename from tests/cases/compiler/extendingSetWithCheckJs.ts rename to tests/cases/compiler/extendingCollectionsWithCheckJs.ts index 2a62243e25630..32345344abf3a 100644 --- a/tests/cases/compiler/extendingSetWithCheckJs.ts +++ b/tests/cases/compiler/extendingCollectionsWithCheckJs.ts @@ -4,6 +4,7 @@ // @noEmit: true // @lib: es2017 +// @filename: extendingCollectionsWithCheckJs.js class MySet extends Set { constructor() { super(); @@ -26,4 +27,4 @@ class MyWeakMap extends WeakMap { constructor() { super(); } -} \ No newline at end of file +} diff --git a/tests/cases/compiler/newMap.ts b/tests/cases/compiler/newMap.ts index a72cd4a5afbea..14854f5d49f06 100644 --- a/tests/cases/compiler/newMap.ts +++ b/tests/cases/compiler/newMap.ts @@ -1,3 +1,4 @@ // @target: es2015 // @lib: es6 new Map(); +new WeakMap();