Add tests for iterator spread in call
This commit is contained in:
parent
376574d1be
commit
4a0af76064
21
tests/baselines/reference/iteratorSpreadInCall.errors.txt
Normal file
21
tests/baselines/reference/iteratorSpreadInCall.errors.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall.ts(1,1): error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall.ts (1 errors) ====
|
||||
foo(...new SymbolIterator);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
function foo(s: symbol) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/baselines/reference/iteratorSpreadInCall.js
Normal file
32
tests/baselines/reference/iteratorSpreadInCall.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
//// [iteratorSpreadInCall.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s: symbol) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
22
tests/baselines/reference/iteratorSpreadInCall10.errors.txt
Normal file
22
tests/baselines/reference/iteratorSpreadInCall10.errors.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall10.ts(1,1): error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall10.ts (1 errors) ====
|
||||
foo(...new SymbolIterator);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
function foo<T>(s: T[]) { return s[0] }
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
34
tests/baselines/reference/iteratorSpreadInCall10.js
Normal file
34
tests/baselines/reference/iteratorSpreadInCall10.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
//// [iteratorSpreadInCall10.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo<T>(s: T[]) { return s[0] }
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall10.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(s) {
|
||||
return s[0];
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
34
tests/baselines/reference/iteratorSpreadInCall11.js
Normal file
34
tests/baselines/reference/iteratorSpreadInCall11.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
//// [iteratorSpreadInCall11.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0] }
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall11.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(...s) {
|
||||
return s[0];
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
45
tests/baselines/reference/iteratorSpreadInCall11.types
Normal file
45
tests/baselines/reference/iteratorSpreadInCall11.types
Normal file
|
@ -0,0 +1,45 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInCall11.ts ===
|
||||
foo(...new SymbolIterator);
|
||||
>foo(...new SymbolIterator) : symbol
|
||||
>foo : <T>(...s: T[]) => T
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0] }
|
||||
>foo : <T>(...s: T[]) => T
|
||||
>T : T
|
||||
>s : T[]
|
||||
>T : T
|
||||
>s[0] : T
|
||||
>s : T[]
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
66
tests/baselines/reference/iteratorSpreadInCall12.js
Normal file
66
tests/baselines/reference/iteratorSpreadInCall12.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
//// [iteratorSpreadInCall12.ts]
|
||||
new Foo(...[...new SymbolIterator, ...[...new StringIterator]]);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall12.js]
|
||||
new Foo(...[
|
||||
...new SymbolIterator,
|
||||
...[
|
||||
...new StringIterator
|
||||
]
|
||||
]);
|
||||
class Foo {
|
||||
constructor(...s) {
|
||||
}
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
81
tests/baselines/reference/iteratorSpreadInCall12.types
Normal file
81
tests/baselines/reference/iteratorSpreadInCall12.types
Normal file
|
@ -0,0 +1,81 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInCall12.ts ===
|
||||
new Foo(...[...new SymbolIterator, ...[...new StringIterator]]);
|
||||
>new Foo(...[...new SymbolIterator, ...[...new StringIterator]]) : Foo<string | symbol>
|
||||
>Foo : typeof Foo
|
||||
>...[...new SymbolIterator, ...[...new StringIterator]] : string | symbol
|
||||
>[...new SymbolIterator, ...[...new StringIterator]] : (string | symbol)[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
>...[...new StringIterator] : string
|
||||
>[...new StringIterator] : string[]
|
||||
>...new StringIterator : string
|
||||
>new StringIterator : StringIterator
|
||||
>StringIterator : typeof StringIterator
|
||||
|
||||
class Foo<T> {
|
||||
>Foo : Foo<T>
|
||||
>T : T
|
||||
|
||||
constructor(...s: T[]) { }
|
||||
>s : T[]
|
||||
>T : T
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
>StringIterator : StringIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: string; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: "", done: false } : { value: string; done: boolean; }
|
||||
|
||||
value: "",
|
||||
>value : string
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : StringIterator
|
||||
}
|
||||
}
|
21
tests/baselines/reference/iteratorSpreadInCall2.errors.txt
Normal file
21
tests/baselines/reference/iteratorSpreadInCall2.errors.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall2.ts(1,1): error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall2.ts (1 errors) ====
|
||||
foo(...new SymbolIterator);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
function foo(s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/baselines/reference/iteratorSpreadInCall2.js
Normal file
32
tests/baselines/reference/iteratorSpreadInCall2.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
//// [iteratorSpreadInCall2.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall2.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/baselines/reference/iteratorSpreadInCall3.js
Normal file
32
tests/baselines/reference/iteratorSpreadInCall3.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
//// [iteratorSpreadInCall3.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(...s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall3.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(...s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
41
tests/baselines/reference/iteratorSpreadInCall3.types
Normal file
41
tests/baselines/reference/iteratorSpreadInCall3.types
Normal file
|
@ -0,0 +1,41 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInCall3.ts ===
|
||||
foo(...new SymbolIterator);
|
||||
>foo(...new SymbolIterator) : void
|
||||
>foo : (...s: symbol[]) => void
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
function foo(...s: symbol[]) { }
|
||||
>foo : (...s: symbol[]) => void
|
||||
>s : symbol[]
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
21
tests/baselines/reference/iteratorSpreadInCall4.errors.txt
Normal file
21
tests/baselines/reference/iteratorSpreadInCall4.errors.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall4.ts(1,1): error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall4.ts (1 errors) ====
|
||||
foo(...new SymbolIterator);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2346: Supplied parameters do not match any signature of call target.
|
||||
|
||||
function foo(s1: symbol, ...s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/baselines/reference/iteratorSpreadInCall4.js
Normal file
32
tests/baselines/reference/iteratorSpreadInCall4.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
//// [iteratorSpreadInCall4.ts]
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s1: symbol, ...s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall4.js]
|
||||
foo(...new SymbolIterator);
|
||||
function foo(s1, ...s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
56
tests/baselines/reference/iteratorSpreadInCall5.js
Normal file
56
tests/baselines/reference/iteratorSpreadInCall5.js
Normal file
|
@ -0,0 +1,56 @@
|
|||
//// [iteratorSpreadInCall5.ts]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo(...s: (symbol | string)[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall5.js]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
function foo(...s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
72
tests/baselines/reference/iteratorSpreadInCall5.types
Normal file
72
tests/baselines/reference/iteratorSpreadInCall5.types
Normal file
|
@ -0,0 +1,72 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts ===
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
>foo(...new SymbolIterator, ...new StringIterator) : void
|
||||
>foo : (...s: (string | symbol)[]) => void
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
>...new StringIterator : string
|
||||
>new StringIterator : StringIterator
|
||||
>StringIterator : typeof StringIterator
|
||||
|
||||
function foo(...s: (symbol | string)[]) { }
|
||||
>foo : (...s: (string | symbol)[]) => void
|
||||
>s : (string | symbol)[]
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
>StringIterator : StringIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: string; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: "", done: false } : { value: string; done: boolean; }
|
||||
|
||||
value: "",
|
||||
>value : string
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : StringIterator
|
||||
}
|
||||
}
|
36
tests/baselines/reference/iteratorSpreadInCall6.errors.txt
Normal file
36
tests/baselines/reference/iteratorSpreadInCall6.errors.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall6.ts(1,28): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number | symbol'.
|
||||
Type 'string' is not assignable to type 'symbol'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall6.ts (1 errors) ====
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number | symbol'.
|
||||
!!! error TS2345: Type 'string' is not assignable to type 'symbol'.
|
||||
|
||||
function foo(...s: (symbol | number)[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
56
tests/baselines/reference/iteratorSpreadInCall6.js
Normal file
56
tests/baselines/reference/iteratorSpreadInCall6.js
Normal file
|
@ -0,0 +1,56 @@
|
|||
//// [iteratorSpreadInCall6.ts]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo(...s: (symbol | number)[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall6.js]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
function foo(...s) {
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
36
tests/baselines/reference/iteratorSpreadInCall7.errors.txt
Normal file
36
tests/baselines/reference/iteratorSpreadInCall7.errors.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall7.ts(1,1): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall7.ts (1 errors) ====
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
~~~
|
||||
!!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
!!! error TS2453: Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0]; }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
57
tests/baselines/reference/iteratorSpreadInCall7.js
Normal file
57
tests/baselines/reference/iteratorSpreadInCall7.js
Normal file
|
@ -0,0 +1,57 @@
|
|||
//// [iteratorSpreadInCall7.ts]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0]; }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall7.js]
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
function foo(...s) {
|
||||
return s[0];
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
39
tests/baselines/reference/iteratorSpreadInCall8.errors.txt
Normal file
39
tests/baselines/reference/iteratorSpreadInCall8.errors.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall8.ts(1,5): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall8.ts (1 errors) ====
|
||||
new Foo(...new SymbolIterator, ...new StringIterator);
|
||||
~~~
|
||||
!!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
!!! error TS2453: Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
61
tests/baselines/reference/iteratorSpreadInCall8.js
Normal file
61
tests/baselines/reference/iteratorSpreadInCall8.js
Normal file
|
@ -0,0 +1,61 @@
|
|||
//// [iteratorSpreadInCall8.ts]
|
||||
new Foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall8.js]
|
||||
new Foo(...new SymbolIterator, ...new StringIterator);
|
||||
class Foo {
|
||||
constructor(...s) {
|
||||
}
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
39
tests/baselines/reference/iteratorSpreadInCall9.errors.txt
Normal file
39
tests/baselines/reference/iteratorSpreadInCall9.errors.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInCall9.ts(1,5): error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInCall9.ts (1 errors) ====
|
||||
new Foo(...new SymbolIterator, ...[...new StringIterator]);
|
||||
~~~
|
||||
!!! error TS2453: The type argument for type parameter 'T' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
!!! error TS2453: Type argument candidate 'symbol' is not a valid type argument because it is not a supertype of candidate 'string'.
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
63
tests/baselines/reference/iteratorSpreadInCall9.js
Normal file
63
tests/baselines/reference/iteratorSpreadInCall9.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
//// [iteratorSpreadInCall9.ts]
|
||||
new Foo(...new SymbolIterator, ...[...new StringIterator]);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInCall9.js]
|
||||
new Foo(...new SymbolIterator, ...[
|
||||
...new StringIterator
|
||||
]);
|
||||
class Foo {
|
||||
constructor(...s) {
|
||||
}
|
||||
}
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s: symbol) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
17
tests/cases/conformance/es6/spread/iteratorSpreadInCall10.ts
Normal file
17
tests/cases/conformance/es6/spread/iteratorSpreadInCall10.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo<T>(s: T[]) { return s[0] }
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
17
tests/cases/conformance/es6/spread/iteratorSpreadInCall11.ts
Normal file
17
tests/cases/conformance/es6/spread/iteratorSpreadInCall11.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0] }
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall12.ts
Normal file
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall12.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
//@target: ES6
|
||||
new Foo(...[...new SymbolIterator, ...[...new StringIterator]]);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall2.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall2.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall3.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall3.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(...s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall4.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInCall4.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator);
|
||||
|
||||
function foo(s1: symbol, ...s: symbol[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts
Normal file
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo(...s: (symbol | string)[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall6.ts
Normal file
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall6.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo(...s: (symbol | number)[]) { }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall7.ts
Normal file
29
tests/cases/conformance/es6/spread/iteratorSpreadInCall7.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
//@target: ES6
|
||||
foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
function foo<T>(...s: T[]) { return s[0]; }
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall8.ts
Normal file
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall8.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
//@target: ES6
|
||||
new Foo(...new SymbolIterator, ...new StringIterator);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall9.ts
Normal file
32
tests/cases/conformance/es6/spread/iteratorSpreadInCall9.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
//@target: ES6
|
||||
new Foo(...new SymbolIterator, ...[...new StringIterator]);
|
||||
|
||||
class Foo<T> {
|
||||
constructor(...s: T[]) { }
|
||||
}
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class StringIterator {
|
||||
next() {
|
||||
return {
|
||||
value: "",
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue