From ed75be40311993f06b86457429896e8f8eb59e78 Mon Sep 17 00:00:00 2001 From: ExE Boss Date: Sun, 22 Nov 2020 20:00:00 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Un=E2=80=91consolidate=20and=C2=A0fix=C2=A0?= =?UTF-8?q?`WeakMap`=20constructor=C2=A0overloads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/es2015.iterable.d.ts | 2 +- .../reference/dissallowSymbolAsWeakType.errors.txt | 4 ++-- ...bols => extendingCollectionsWithCheckJs.symbols} | 13 +++++++------ ....types => extendingCollectionsWithCheckJs.types} | 5 +++-- tests/baselines/reference/newMap.errors.txt | 1 + tests/baselines/reference/newMap.js | 2 ++ tests/baselines/reference/newMap.symbols | 3 +++ tests/baselines/reference/newMap.types | 4 ++++ ...heckJs.ts => extendingCollectionsWithCheckJs.ts} | 3 ++- tests/cases/compiler/newMap.ts | 1 + 10 files changed, 26 insertions(+), 12 deletions(-) rename tests/baselines/reference/{extendingSetWithCheckJs.symbols => extendingCollectionsWithCheckJs.symbols} (78%) rename tests/baselines/reference/{extendingSetWithCheckJs.types => extendingCollectionsWithCheckJs.types} (80%) rename tests/cases/compiler/{extendingSetWithCheckJs.ts => extendingCollectionsWithCheckJs.ts} (82%) diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index d28b8381eec86..d2052adca9b13 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -144,7 +144,7 @@ interface MapConstructor { interface WeakMap {} interface WeakMapConstructor { - new (iterable: Iterable): WeakMap; + new (iterable?: Iterable | null): WeakMap; } interface Set { diff --git a/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt b/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt index 67c78efa8cc8d..25ca2f2ef4340 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): 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], any>' 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): 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], any>' 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 80% rename from tests/baselines/reference/extendingSetWithCheckJs.types rename to tests/baselines/reference/extendingCollectionsWithCheckJs.types index 9aeabf190e2f7..1843dd591d720 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 >Set : Set @@ -44,3 +44,4 @@ class MyWeakMap extends WeakMap { >super : WeakMapConstructor } } + 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 b40e48499b0cf..a84538afba149 100644 --- a/tests/baselines/reference/newMap.js +++ b/tests/baselines/reference/newMap.js @@ -2,7 +2,9 @@ //// [newMap.ts] new Map(); +new WeakMap(); //// [newMap.js] 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 fc51dd8106557..b463eea586859 100644 --- a/tests/baselines/reference/newMap.types +++ b/tests/baselines/reference/newMap.types @@ -5,3 +5,7 @@ new Map(); >new Map() : 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 b726a5e830c7f..70ab52f4bef5c 100644 --- a/tests/cases/compiler/extendingSetWithCheckJs.ts +++ b/tests/cases/compiler/extendingCollectionsWithCheckJs.ts @@ -3,6 +3,7 @@ // @noEmit: true // @lib: es2017 +// @filename: extendingCollectionsWithCheckJs.js class MySet extends Set { constructor() { super(); @@ -25,4 +26,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 ab7040e11d98b..f6264134ba73f 100644 --- a/tests/cases/compiler/newMap.ts +++ b/tests/cases/compiler/newMap.ts @@ -1,2 +1,3 @@ // @lib: es6 new Map(); +new WeakMap(); From 411d4e7ea244e38d7a6f3859a0997b37d62fb647 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:59:34 -0800 Subject: [PATCH 2/2] update baselines --- .../baselines/reference/dissallowSymbolAsWeakType.errors.txt | 4 ++-- tests/baselines/reference/newMap.types | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt b/tests/baselines/reference/dissallowSymbolAsWeakType.errors.txt index 3a16cab9b0362..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/newMap.types b/tests/baselines/reference/newMap.types index 1b45444454d7a..d04382cd361de 100644 --- a/tests/baselines/reference/newMap.types +++ b/tests/baselines/reference/newMap.types @@ -9,5 +9,7 @@ new Map(); new WeakMap(); >new WeakMap() : WeakMap +> : ^^^^^^^^^^^^^^^^^^^^ >WeakMap : WeakMapConstructor +> : ^^^^^^^^^^^^^^^^^^