Skip to content

Commit 46b5284

Browse files
authored
Fix error chaining in getIterationTypesOfIterableSlow (#1091)
1 parent cc2af8f commit 46b5284

File tree

5 files changed

+27
-191
lines changed

5 files changed

+27
-191
lines changed

internal/checker/checker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6111,7 +6111,7 @@ func (c *Checker) getIterationTypesOfIterableSlow(t *Type, r *IterationTypesReso
61116111
return c.getIterationTypesOfIteratorWorker(iteratorType, r, errorNode, diagnosticOutput)
61126112
}
61136113
if errorNode != nil && len(allSignatures) != 0 {
6114-
c.checkTypeAssignableTo(t, r.getGlobalIterableTypeChecked(), errorNode, nil)
6114+
c.checkTypeAssignableToEx(t, r.getGlobalIterableTypeChecked(), errorNode, nil, diagnosticOutput)
61156115
}
61166116
}
61176117
return IterationTypes{}
Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
1-
asyncIteratorExtraParameters.ts(11,27): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
2-
Types of property '[Symbol.asyncIterator]' are incompatible.
3-
Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
4-
Target signature provides too few arguments. Expected 1 or more, but got 0.
51
asyncIteratorExtraParameters.ts(11,27): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.
6-
asyncIteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
7-
Types of property '[Symbol.asyncIterator]' are incompatible.
8-
Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
9-
Target signature provides too few arguments. Expected 1 or more, but got 0.
102
asyncIteratorExtraParameters.ts(13,12): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.
113

124

13-
==== asyncIteratorExtraParameters.ts (4 errors) ====
5+
==== asyncIteratorExtraParameters.ts (2 errors) ====
146
// https://github.com/microsoft/TypeScript/issues/57130
157
const iter = {
168
async *[Symbol.asyncIterator](_: number) {
@@ -23,20 +15,18 @@ asyncIteratorExtraParameters.ts(13,12): error TS2504: Type '{ [Symbol.asyncItera
2315
async function* f() {
2416
for await (const _ of iter);
2517
~~~~
26-
!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
27-
!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible.
28-
!!! error TS2322: Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
29-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
30-
~~~~
3118
!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.
19+
!!! related TS2322 asyncIteratorExtraParameters.ts:11:27: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
20+
Types of property '[Symbol.asyncIterator]' are incompatible.
21+
Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
22+
Target signature provides too few arguments. Expected 1 or more, but got 0.
3223

3324
yield* iter;
3425
~~~~
35-
!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
36-
!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible.
37-
!!! error TS2322: Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
38-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
39-
~~~~
4026
!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.
27+
!!! related TS2322 asyncIteratorExtraParameters.ts:13:12: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator<number, void, unknown>; }' is not assignable to type 'AsyncIterable<T, TReturn, TNext>'.
28+
Types of property '[Symbol.asyncIterator]' are incompatible.
29+
Type '(_: number) => AsyncGenerator<number, void, unknown>' is not assignable to type '() => AsyncIterator<T, TReturn, TNext>'.
30+
Target signature provides too few arguments. Expected 1 or more, but got 0.
4131
}
4232

testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt.diff

Lines changed: 0 additions & 49 deletions
This file was deleted.
Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,10 @@
1-
iteratorExtraParameters.ts(11,21): error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
2-
Types of property '[Symbol.iterator]' are incompatible.
3-
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
4-
Target signature provides too few arguments. Expected 1 or more, but got 0.
51
iteratorExtraParameters.ts(11,21): error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
6-
iteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
7-
Types of property '[Symbol.iterator]' are incompatible.
8-
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
9-
Target signature provides too few arguments. Expected 1 or more, but got 0.
102
iteratorExtraParameters.ts(13,12): error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
11-
iteratorExtraParameters.ts(15,9): error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
12-
Types of property '[Symbol.iterator]' are incompatible.
13-
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
14-
Target signature provides too few arguments. Expected 1 or more, but got 0.
153
iteratorExtraParameters.ts(15,9): error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
16-
iteratorExtraParameters.ts(17,10): error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
17-
Types of property '[Symbol.iterator]' are incompatible.
18-
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
19-
Target signature provides too few arguments. Expected 1 or more, but got 0.
204
iteratorExtraParameters.ts(17,10): error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
215

226

23-
==== iteratorExtraParameters.ts (8 errors) ====
7+
==== iteratorExtraParameters.ts (4 errors) ====
248
// https://github.com/microsoft/TypeScript/issues/57130
259
const iter = {
2610
*[Symbol.iterator](_: number) {
@@ -33,38 +17,34 @@ iteratorExtraParameters.ts(17,10): error TS2488: Type '{ [Symbol.iterator](_: nu
3317
function* f() {
3418
for (const _ of iter);
3519
~~~~
36-
!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
37-
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
38-
!!! error TS2322: Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
39-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
40-
~~~~
4120
!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
21+
!!! related TS2322 iteratorExtraParameters.ts:11:21: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
22+
Types of property '[Symbol.iterator]' are incompatible.
23+
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
24+
Target signature provides too few arguments. Expected 1 or more, but got 0.
4225

4326
yield* iter;
4427
~~~~
45-
!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
46-
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
47-
!!! error TS2322: Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
48-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
49-
~~~~
5028
!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
29+
!!! related TS2322 iteratorExtraParameters.ts:13:12: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
30+
Types of property '[Symbol.iterator]' are incompatible.
31+
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
32+
Target signature provides too few arguments. Expected 1 or more, but got 0.
5133

5234
[...iter]
5335
~~~~
54-
!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
55-
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
56-
!!! error TS2322: Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
57-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
58-
~~~~
5936
!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
37+
!!! related TS2322 iteratorExtraParameters.ts:15:9: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
38+
Types of property '[Symbol.iterator]' are incompatible.
39+
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
40+
Target signature provides too few arguments. Expected 1 or more, but got 0.
6041

6142
g(...iter);
6243
~~~~
63-
!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
64-
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
65-
!!! error TS2322: Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
66-
!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0.
67-
~~~~
6844
!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' must have a '[Symbol.iterator]()' method that returns an iterator.
45+
!!! related TS2322 iteratorExtraParameters.ts:17:10: Type '{ [Symbol.iterator](_: number): Generator<number, void, unknown>; }' is not assignable to type 'Iterable<T, TReturn, TNext>'.
46+
Types of property '[Symbol.iterator]' are incompatible.
47+
Type '(_: number) => Generator<number, void, unknown>' is not assignable to type '() => Iterator<T, TReturn, TNext>'.
48+
Target signature provides too few arguments. Expected 1 or more, but got 0.
6949
}
7050

0 commit comments

Comments
 (0)