From 1a6ccde88c9cc7fc0601a79bbb35eaec7872c2e3 Mon Sep 17 00:00:00 2001 From: ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Date: Sun, 22 Nov 2020 20:00:00 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Un=E2=80=91consolidate=C2=A0and=C2=A0fix=20?= =?UTF-8?q?`WeakMap`=C2=A0constructor=C2=A0overloads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/es2015.collection.d.ts | 3 ++- src/lib/es2015.iterable.d.ts | 2 +- tests/baselines/reference/newMap.errors.txt | 6 +++++- tests/baselines/reference/newMap.js | 2 ++ tests/baselines/reference/newMap.symbols | 3 +++ tests/baselines/reference/newMap.types | 4 ++++ tests/cases/compiler/extendingSetWithCheckJs.ts | 3 ++- tests/cases/compiler/newMap.ts | 1 + 8 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/lib/es2015.collection.d.ts b/src/lib/es2015.collection.d.ts index 83a7719acef55..b53a40564a2e2 100644 --- a/src/lib/es2015.collection.d.ts +++ b/src/lib/es2015.collection.d.ts @@ -30,7 +30,8 @@ interface WeakMap { } interface WeakMapConstructor { - new (entries?: readonly [K, V][] | null): WeakMap; + new(): WeakMap; + new (entries?: readonly [K, V][] | null): WeakMap; readonly prototype: WeakMap; } declare var WeakMap: WeakMapConstructor; diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index da6bec04adf8e..cc2b9998e2ed5 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -143,7 +143,7 @@ interface MapConstructor { interface WeakMap { } interface WeakMapConstructor { - new (iterable: Iterable<[K, V]>): WeakMap; + new (iterable: Iterable): WeakMap; } interface Set { diff --git a/tests/baselines/reference/newMap.errors.txt b/tests/baselines/reference/newMap.errors.txt index d8a4f1c522214..8a55256079da3 100644 --- a/tests/baselines/reference/newMap.errors.txt +++ b/tests/baselines/reference/newMap.errors.txt @@ -1,8 +1,12 @@ tests/cases/compiler/newMap.ts(1,9): error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. +tests/cases/compiler/newMap.ts(2,13): error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. -==== tests/cases/compiler/newMap.ts (1 errors) ==== +==== tests/cases/compiler/newMap.ts (2 errors) ==== new Map(); ~~~~~~ !!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. + new WeakMap(); + ~~~~~~ +!!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. \ No newline at end of file diff --git a/tests/baselines/reference/newMap.js b/tests/baselines/reference/newMap.js index 9ab99fc7242c5..efef459005990 100644 --- a/tests/baselines/reference/newMap.js +++ b/tests/baselines/reference/newMap.js @@ -1,6 +1,8 @@ //// [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 1ce51df496927..8f7a3f80c4a96 100644 --- a/tests/baselines/reference/newMap.symbols +++ b/tests/baselines/reference/newMap.symbols @@ -2,3 +2,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 c00ff104407c9..8bb545746f3a1 100644 --- a/tests/baselines/reference/newMap.types +++ b/tests/baselines/reference/newMap.types @@ -3,3 +3,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/extendingSetWithCheckJs.ts index b726a5e830c7f..70ab52f4bef5c 100644 --- a/tests/cases/compiler/extendingSetWithCheckJs.ts +++ b/tests/cases/compiler/extendingSetWithCheckJs.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 d21280e164ec9a13da1f66757d2f5280a5db6f6a Mon Sep 17 00:00:00 2001 From: ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Date: Sun, 22 Nov 2020 20:30:00 +0100 Subject: [PATCH 2/2] =?UTF-8?q?fixup!=20Un=E2=80=91consolidate=C2=A0and?= =?UTF-8?q?=C2=A0fix=20`WeakMap`=C2=A0constructor=C2=A0overloads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/es2015.collection.d.ts | 1 - .../reference/extendingSetWithCheckJs.symbols | 11 ++++++----- .../baselines/reference/extendingSetWithCheckJs.types | 5 +++-- tests/baselines/reference/newMap.errors.txt | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/lib/es2015.collection.d.ts b/src/lib/es2015.collection.d.ts index b53a40564a2e2..168a2bb9eef10 100644 --- a/src/lib/es2015.collection.d.ts +++ b/src/lib/es2015.collection.d.ts @@ -30,7 +30,6 @@ interface WeakMap { } interface WeakMapConstructor { - new(): WeakMap; new (entries?: readonly [K, V][] | null): WeakMap; readonly prototype: WeakMap; } diff --git a/tests/baselines/reference/extendingSetWithCheckJs.symbols b/tests/baselines/reference/extendingSetWithCheckJs.symbols index 63bc853976373..23b4269072853 100644 --- a/tests/baselines/reference/extendingSetWithCheckJs.symbols +++ b/tests/baselines/reference/extendingSetWithCheckJs.symbols @@ -1,6 +1,6 @@ -=== tests/cases/compiler/extendingSetWithCheckJs.ts === +=== tests/cases/compiler/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() { @@ -10,7 +10,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() { @@ -20,7 +20,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() { @@ -30,7 +30,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() { @@ -38,3 +38,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/extendingSetWithCheckJs.types index dd10731e023ae..039986d824819 100644 --- a/tests/baselines/reference/extendingSetWithCheckJs.types +++ b/tests/baselines/reference/extendingSetWithCheckJs.types @@ -1,4 +1,4 @@ -=== tests/cases/compiler/extendingSetWithCheckJs.ts === +=== tests/cases/compiler/extendingCollectionsWithCheckJs.js === class MySet extends Set { >MySet : MySet >Set : Set @@ -34,7 +34,7 @@ class MyMap extends Map { class MyWeakMap extends WeakMap { >MyWeakMap : MyWeakMap ->WeakMap : WeakMap +>WeakMap : WeakMap constructor() { super(); @@ -42,3 +42,4 @@ class MyWeakMap extends WeakMap { >super : WeakMapConstructor } } + diff --git a/tests/baselines/reference/newMap.errors.txt b/tests/baselines/reference/newMap.errors.txt index 8a55256079da3..639d46bc248cf 100644 --- a/tests/baselines/reference/newMap.errors.txt +++ b/tests/baselines/reference/newMap.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/newMap.ts(1,9): error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. -tests/cases/compiler/newMap.ts(2,13): error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. +tests/cases/compiler/newMap.ts(2,13): error TS2558: Expected 2 type arguments, but got 1. ==== tests/cases/compiler/newMap.ts (2 errors) ==== @@ -8,5 +8,5 @@ tests/cases/compiler/newMap.ts(2,13): error TS2743: No overload expects 1 type a !!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. new WeakMap(); ~~~~~~ -!!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments. +!!! error TS2558: Expected 2 type arguments, but got 1. \ No newline at end of file