diff --git a/internal/checker/checker.go b/internal/checker/checker.go index dd0e3b41d2..7856a17e99 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -501,6 +501,7 @@ type IterationTypesResolver struct { iteratorSymbolName string getGlobalIteratorType func() *Type getGlobalIterableType func() *Type + getGlobalIterableTypeChecked func() *Type getGlobalIterableIteratorType func() *Type getGlobalIterableIteratorTypeChecked func() *Type getGlobalIteratorObjectType func() *Type @@ -812,6 +813,7 @@ type Checker struct { getGlobalGeneratorType func() *Type getGlobalAsyncIteratorType func() *Type getGlobalAsyncIterableType func() *Type + getGlobalAsyncIterableTypeChecked func() *Type getGlobalAsyncIterableIteratorType func() *Type getGlobalAsyncIterableIteratorTypeChecked func() *Type getGlobalAsyncIteratorObjectType func() *Type @@ -1038,6 +1040,7 @@ func NewChecker(program Program) *Checker { c.getGlobalGeneratorType = c.getGlobalTypeResolver("Generator", 3 /*arity*/, false /*reportErrors*/) c.getGlobalAsyncIteratorType = c.getGlobalTypeResolver("AsyncIterator", 3 /*arity*/, false /*reportErrors*/) c.getGlobalAsyncIterableType = c.getGlobalTypeResolver("AsyncIterable", 3 /*arity*/, false /*reportErrors*/) + c.getGlobalAsyncIterableTypeChecked = c.getGlobalTypeResolver("AsyncIterable", 3 /*arity*/, true /*reportErrors*/) c.getGlobalAsyncIterableIteratorType = c.getGlobalTypeResolver("AsyncIterableIterator", 3 /*arity*/, false /*reportErrors*/) c.getGlobalAsyncIterableIteratorTypeChecked = c.getGlobalTypeResolver("AsyncIterableIterator", 3 /*arity*/, true /*reportErrors*/) c.getGlobalAsyncIteratorObjectType = c.getGlobalTypeResolver("AsyncIteratorObject", 3 /*arity*/, false /*reportErrors*/) @@ -1207,6 +1210,7 @@ func (c *Checker) initializeIterationResolvers() { iteratorSymbolName: "iterator", getGlobalIteratorType: c.getGlobalIteratorType, getGlobalIterableType: c.getGlobalIterableType, + getGlobalIterableTypeChecked: c.getGlobalIterableTypeChecked, getGlobalIterableIteratorType: c.getGlobalIterableIteratorType, getGlobalIterableIteratorTypeChecked: c.getGlobalIterableIteratorTypeChecked, getGlobalIteratorObjectType: c.getGlobalIteratorObjectType, @@ -1223,6 +1227,7 @@ func (c *Checker) initializeIterationResolvers() { iteratorSymbolName: "asyncIterator", getGlobalIteratorType: c.getGlobalAsyncIteratorType, getGlobalIterableType: c.getGlobalAsyncIterableType, + getGlobalIterableTypeChecked: c.getGlobalAsyncIterableTypeChecked, getGlobalIterableIteratorType: c.getGlobalAsyncIterableIteratorType, getGlobalIterableIteratorTypeChecked: c.getGlobalAsyncIterableIteratorTypeChecked, getGlobalIteratorObjectType: c.getGlobalAsyncIteratorObjectType, @@ -6079,10 +6084,17 @@ func (c *Checker) getIterationTypesOfIterableSlow(t *Type, r *IterationTypesReso if IsTypeAny(methodType) { return IterationTypes{c.anyType, c.anyType, c.anyType} } - if signatures := c.getSignaturesOfType(methodType, SignatureKindCall); len(signatures) != 0 { - iteratorType := c.getIntersectionType(core.Map(signatures, c.getReturnTypeOfSignature)) + allSignatures := c.getSignaturesOfType(methodType, SignatureKindCall) + validSignatures := core.Filter(allSignatures, func(sig *Signature) bool { + return c.getMinArgumentCount(sig) == 0 + }) + if len(validSignatures) != 0 { + iteratorType := c.getIntersectionType(core.Map(validSignatures, c.getReturnTypeOfSignature)) return c.getIterationTypesOfIteratorWorker(iteratorType, r, errorNode, diagnosticOutput) } + if errorNode != nil && len(allSignatures) != 0 { + c.checkTypeAssignableTo(t, r.getGlobalIterableTypeChecked(), errorNode, nil) + } } return IterationTypes{} } diff --git a/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt b/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt new file mode 100644 index 0000000000..6b75ddfe3e --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt @@ -0,0 +1,42 @@ +asyncIteratorExtraParameters.ts(11,27): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. + Types of property '[Symbol.asyncIterator]' are incompatible. + Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +asyncIteratorExtraParameters.ts(11,27): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. +asyncIteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. + Types of property '[Symbol.asyncIterator]' are incompatible. + Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +asyncIteratorExtraParameters.ts(13,12): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. + + +==== asyncIteratorExtraParameters.ts (4 errors) ==== + // https://github.com/microsoft/TypeScript/issues/57130 + const iter = { + async *[Symbol.asyncIterator](_: number) { + yield 0; + } + }; + + declare function g(...args: any): any; + + async function* f() { + for await (const _ of iter); + ~~~~ +!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. +!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible. +!!! error TS2322: Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. + + yield* iter; + ~~~~ +!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. +!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible. +!!! error TS2322: Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt.diff index 1ab0c61dd2..40a7953b78 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncIteratorExtraParameters.errors.txt.diff @@ -1,36 +1,49 @@ --- old.asyncIteratorExtraParameters.errors.txt +++ new.asyncIteratorExtraParameters.errors.txt @@= skipped -0, +0 lines =@@ --asyncIteratorExtraParameters.ts(11,27): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. --asyncIteratorExtraParameters.ts(13,12): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. -- -- ++asyncIteratorExtraParameters.ts(11,27): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. ++ Types of property '[Symbol.asyncIterator]' are incompatible. ++ Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + asyncIteratorExtraParameters.ts(11,27): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. ++asyncIteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. ++ Types of property '[Symbol.asyncIterator]' are incompatible. ++ Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + asyncIteratorExtraParameters.ts(13,12): error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. + + -==== asyncIteratorExtraParameters.ts (2 errors) ==== -- // https://github.com/microsoft/TypeScript/issues/57130 -- const iter = { -- async *[Symbol.asyncIterator](_: number) { -- yield 0; -- } -- }; -- -- declare function g(...args: any): any; -- -- async function* f() { -- for await (const _ of iter); -- ~~~~ --!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. ++==== asyncIteratorExtraParameters.ts (4 errors) ==== + // https://github.com/microsoft/TypeScript/issues/57130 + const iter = { + async *[Symbol.asyncIterator](_: number) { +@@= skipped -14, +22 lines =@@ + async function* f() { + for await (const _ of iter); + ~~~~ ++!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. ++!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. -!!! related TS2322 asyncIteratorExtraParameters.ts:11:27: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. - Types of property '[Symbol.asyncIterator]' are incompatible. - Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- -- yield* iter; -- ~~~~ --!!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. + + yield* iter; + ~~~~ ++!!! error TS2322: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. ++!!! error TS2322: Types of property '[Symbol.asyncIterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2504: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. -!!! related TS2322 asyncIteratorExtraParameters.ts:13:12: Type '{ [Symbol.asyncIterator](_: number): AsyncGenerator; }' is not assignable to type 'AsyncIterable'. - Types of property '[Symbol.asyncIterator]' are incompatible. - Type '(_: number) => AsyncGenerator' is not assignable to type '() => AsyncIterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- } -- -+ \ No newline at end of file + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt b/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt new file mode 100644 index 0000000000..1b2fabbaa7 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt @@ -0,0 +1,70 @@ +iteratorExtraParameters.ts(11,21): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '(_: number) => Generator' is not assignable to type '() => Iterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +iteratorExtraParameters.ts(11,21): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. +iteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '(_: number) => Generator' is not assignable to type '() => Iterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +iteratorExtraParameters.ts(13,12): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. +iteratorExtraParameters.ts(15,9): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '(_: number) => Generator' is not assignable to type '() => Iterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +iteratorExtraParameters.ts(15,9): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. +iteratorExtraParameters.ts(17,10): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. + Types of property '[Symbol.iterator]' are incompatible. + Type '(_: number) => Generator' is not assignable to type '() => Iterator'. + Target signature provides too few arguments. Expected 1 or more, but got 0. +iteratorExtraParameters.ts(17,10): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + +==== iteratorExtraParameters.ts (8 errors) ==== + // https://github.com/microsoft/TypeScript/issues/57130 + const iter = { + *[Symbol.iterator](_: number) { + yield 0; + } + }; + + declare function g(...args: any): any; + + function* f() { + for (const _ of iter); + ~~~~ +!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + yield* iter; + ~~~~ +!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + [...iter] + ~~~~ +!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + g(...iter); + ~~~~ +!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. +!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. +!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. +!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. + ~~~~ +!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt.diff index 82c537fc2e..095db18fb2 100644 --- a/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt.diff +++ b/testdata/baselines/reference/submodule/compiler/iteratorExtraParameters.errors.txt.diff @@ -1,54 +1,85 @@ --- old.iteratorExtraParameters.errors.txt +++ new.iteratorExtraParameters.errors.txt @@= skipped -0, +0 lines =@@ --iteratorExtraParameters.ts(11,21): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. --iteratorExtraParameters.ts(13,12): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. --iteratorExtraParameters.ts(15,9): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. --iteratorExtraParameters.ts(17,10): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. -- -- ++iteratorExtraParameters.ts(11,21): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++ Types of property '[Symbol.iterator]' are incompatible. ++ Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + iteratorExtraParameters.ts(11,21): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. ++iteratorExtraParameters.ts(13,12): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++ Types of property '[Symbol.iterator]' are incompatible. ++ Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + iteratorExtraParameters.ts(13,12): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. ++iteratorExtraParameters.ts(15,9): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++ Types of property '[Symbol.iterator]' are incompatible. ++ Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + iteratorExtraParameters.ts(15,9): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. ++iteratorExtraParameters.ts(17,10): error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++ Types of property '[Symbol.iterator]' are incompatible. ++ Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++ Target signature provides too few arguments. Expected 1 or more, but got 0. + iteratorExtraParameters.ts(17,10): error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + -==== iteratorExtraParameters.ts (4 errors) ==== -- // https://github.com/microsoft/TypeScript/issues/57130 -- const iter = { -- *[Symbol.iterator](_: number) { -- yield 0; -- } -- }; -- -- declare function g(...args: any): any; -- -- function* f() { -- for (const _ of iter); -- ~~~~ --!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. ++==== iteratorExtraParameters.ts (8 errors) ==== + // https://github.com/microsoft/TypeScript/issues/57130 + const iter = { + *[Symbol.iterator](_: number) { +@@= skipped -16, +32 lines =@@ + function* f() { + for (const _ of iter); + ~~~~ ++!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. -!!! related TS2322 iteratorExtraParameters.ts:11:21: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '(_: number) => Generator' is not assignable to type '() => Iterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- -- yield* iter; -- ~~~~ --!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + yield* iter; + ~~~~ ++!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. -!!! related TS2322 iteratorExtraParameters.ts:13:12: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '(_: number) => Generator' is not assignable to type '() => Iterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- -- [...iter] -- ~~~~ --!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + [...iter] + ~~~~ ++!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. -!!! related TS2322 iteratorExtraParameters.ts:15:9: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '(_: number) => Generator' is not assignable to type '() => Iterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- -- g(...iter); -- ~~~~ --!!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. + + g(...iter); + ~~~~ ++!!! error TS2322: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. ++!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible. ++!!! error TS2322: Type '(_: number) => Generator' is not assignable to type '() => Iterator'. ++!!! error TS2322: Target signature provides too few arguments. Expected 1 or more, but got 0. ++ ~~~~ + !!! error TS2488: Type '{ [Symbol.iterator](_: number): Generator; }' must have a '[Symbol.iterator]()' method that returns an iterator. -!!! related TS2322 iteratorExtraParameters.ts:17:10: Type '{ [Symbol.iterator](_: number): Generator; }' is not assignable to type 'Iterable'. - Types of property '[Symbol.iterator]' are incompatible. - Type '(_: number) => Generator' is not assignable to type '() => Iterator'. - Target signature provides too few arguments. Expected 1 or more, but got 0. -- } -- -+ \ No newline at end of file + } + \ No newline at end of file