Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/lib/es2015.iterable.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ interface MapConstructor {
interface WeakMap<K extends WeakKey, V> {}

interface WeakMapConstructor {
new <K extends WeakKey, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;
new <K extends WeakKey = WeakKey, V = any>(iterable?: Iterable<readonly [K, V]> | null): WeakMap<K, V>;
}

interface SetIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<readonly [object, boolean]>): WeakMap<object, boolean>', gave the following error.
Overload 1 of 2, '(iterable?: Iterable<readonly [object, boolean]> | null | undefined): WeakMap<object, boolean>', gave the following error.
Argument of type '[symbol, false][]' is not assignable to parameter of type 'Iterable<readonly [object, boolean]>'.
The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types.
Type 'IteratorResult<[symbol, false], undefined>' is not assignable to type 'IteratorResult<readonly [object, boolean], any>'.
Expand Down Expand Up @@ -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<readonly [object, boolean]>): WeakMap<object, boolean>', gave the following error.
!!! error TS2769: Overload 1 of 2, '(iterable?: Iterable<readonly [object, boolean]> | null | undefined): WeakMap<object, boolean>', gave the following error.
!!! error TS2769: Argument of type '[symbol, false][]' is not assignable to parameter of type 'Iterable<readonly [object, boolean]>'.
!!! 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<readonly [object, boolean], any>'.
Expand Down
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -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() {
Expand All @@ -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() {
Expand All @@ -32,11 +32,12 @@ 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() {
super();
>super : Symbol(WeakMapConstructor, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
}
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//// [tests/cases/compiler/extendingSetWithCheckJs.ts] ////
//// [tests/cases/compiler/extendingCollectionsWithCheckJs.ts] ////

=== extendingSetWithCheckJs.ts ===
=== extendingCollectionsWithCheckJs.js ===
class MySet extends Set {
>MySet : MySet
> : ^^^^^
Expand Down Expand Up @@ -60,3 +60,4 @@ class MyWeakMap extends WeakMap {
> : ^^^^^^^^^^^^^^^^^^
}
}

1 change: 1 addition & 0 deletions tests/baselines/reference/newMap.errors.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ newMap.ts(1,9): error TS2743: No overload expects 1 type arguments, but overload
new Map<string>();
~~~~~~
!!! error TS2743: No overload expects 1 type arguments, but overloads do exist that expect either 0 or 2 type arguments.
new WeakMap<object>();

2 changes: 2 additions & 0 deletions tests/baselines/reference/newMap.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

//// [newMap.ts]
new Map<string>();
new WeakMap<object>();


//// [newMap.js]
"use strict";
new Map();
new WeakMap();
3 changes: 3 additions & 0 deletions tests/baselines/reference/newMap.symbols
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
new Map<string>();
>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<object>();
>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, --, --))

6 changes: 6 additions & 0 deletions tests/baselines/reference/newMap.types
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ new Map<string>();
>Map : MapConstructor
> : ^^^^^^^^^^^^^^

new WeakMap<object>();
>new WeakMap<object>() : WeakMap<object, any>
> : ^^^^^^^^^^^^^^^^^^^^
>WeakMap : WeakMapConstructor
> : ^^^^^^^^^^^^^^^^^^

Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
// @noEmit: true
// @lib: es2017

// @filename: extendingCollectionsWithCheckJs.js
class MySet extends Set {
constructor() {
super();
Expand All @@ -26,4 +27,4 @@ class MyWeakMap extends WeakMap {
constructor() {
super();
}
}
}
1 change: 1 addition & 0 deletions tests/cases/compiler/newMap.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @target: es2015
// @lib: es6
new Map<string>();
new WeakMap<object>();