Add tests for iterator spread in an array literal
This commit is contained in:
parent
2288946afc
commit
376574d1be
31
tests/baselines/reference/iteratorSpreadInArray.js
Normal file
31
tests/baselines/reference/iteratorSpreadInArray.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
//// [iteratorSpreadInArray.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
37
tests/baselines/reference/iteratorSpreadInArray.types
Normal file
37
tests/baselines/reference/iteratorSpreadInArray.types
Normal file
|
@ -0,0 +1,37 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts ===
|
||||
var array = [...new SymbolIterator];
|
||||
>array : symbol[]
|
||||
>[...new SymbolIterator] : symbol[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
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
|
||||
}
|
||||
}
|
13
tests/baselines/reference/iteratorSpreadInArray10.errors.txt
Normal file
13
tests/baselines/reference/iteratorSpreadInArray10.errors.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInArray10.ts(1,17): error TS2489: An iterator must have a 'next()' method.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray10.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2489: An iterator must have a 'next()' method.
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
18
tests/baselines/reference/iteratorSpreadInArray10.js
Normal file
18
tests/baselines/reference/iteratorSpreadInArray10.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
//// [iteratorSpreadInArray10.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray10.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
56
tests/baselines/reference/iteratorSpreadInArray2.js
Normal file
56
tests/baselines/reference/iteratorSpreadInArray2.js
Normal file
|
@ -0,0 +1,56 @@
|
|||
//// [iteratorSpreadInArray2.ts]
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray2.js]
|
||||
var array = [
|
||||
...new NumberIterator,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
68
tests/baselines/reference/iteratorSpreadInArray2.types
Normal file
68
tests/baselines/reference/iteratorSpreadInArray2.types
Normal file
|
@ -0,0 +1,68 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts ===
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[...new NumberIterator, ...new SymbolIterator] : (number | symbol)[]
|
||||
>...new NumberIterator : number
|
||||
>new NumberIterator : NumberIterator
|
||||
>NumberIterator : typeof NumberIterator
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
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 NumberIterator {
|
||||
>NumberIterator : NumberIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: number; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: 0, done: false } : { value: number; done: boolean; }
|
||||
|
||||
value: 0,
|
||||
>value : number
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : NumberIterator
|
||||
}
|
||||
}
|
35
tests/baselines/reference/iteratorSpreadInArray3.js
Normal file
35
tests/baselines/reference/iteratorSpreadInArray3.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
//// [iteratorSpreadInArray3.ts]
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray3.js]
|
||||
var array = [
|
||||
...[
|
||||
0,
|
||||
1
|
||||
],
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
39
tests/baselines/reference/iteratorSpreadInArray3.types
Normal file
39
tests/baselines/reference/iteratorSpreadInArray3.types
Normal file
|
@ -0,0 +1,39 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts ===
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[...[0, 1], ...new SymbolIterator] : (number | symbol)[]
|
||||
>...[0, 1] : number
|
||||
>[0, 1] : number[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
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
|
||||
}
|
||||
}
|
33
tests/baselines/reference/iteratorSpreadInArray4.js
Normal file
33
tests/baselines/reference/iteratorSpreadInArray4.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
//// [iteratorSpreadInArray4.ts]
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray4.js]
|
||||
var array = [
|
||||
0,
|
||||
1,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
37
tests/baselines/reference/iteratorSpreadInArray4.types
Normal file
37
tests/baselines/reference/iteratorSpreadInArray4.types
Normal file
|
@ -0,0 +1,37 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts ===
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[0, 1, ...new SymbolIterator] : (number | symbol)[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
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
|
||||
}
|
||||
}
|
24
tests/baselines/reference/iteratorSpreadInArray5.errors.txt
Normal file
24
tests/baselines/reference/iteratorSpreadInArray5.errors.txt
Normal file
|
@ -0,0 +1,24 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts(1,5): error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'.
|
||||
Type 'number | symbol' is not assignable to type 'number'.
|
||||
Type 'symbol' is not assignable to type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts (1 errors) ====
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
~~~~~
|
||||
!!! error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Type 'number | symbol' is not assignable to type 'number'.
|
||||
!!! error TS2322: Type 'symbol' is not assignable to type 'number'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
33
tests/baselines/reference/iteratorSpreadInArray5.js
Normal file
33
tests/baselines/reference/iteratorSpreadInArray5.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
//// [iteratorSpreadInArray5.ts]
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray5.js]
|
||||
var array = [
|
||||
0,
|
||||
1,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
21
tests/baselines/reference/iteratorSpreadInArray6.errors.txt
Normal file
21
tests/baselines/reference/iteratorSpreadInArray6.errors.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts(2,14): error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts (1 errors) ====
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
36
tests/baselines/reference/iteratorSpreadInArray6.js
Normal file
36
tests/baselines/reference/iteratorSpreadInArray6.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
//// [iteratorSpreadInArray6.ts]
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray6.js]
|
||||
var array = [
|
||||
0,
|
||||
1
|
||||
];
|
||||
array.concat([
|
||||
...new SymbolIterator
|
||||
]);
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
33
tests/baselines/reference/iteratorSpreadInArray7.js
Normal file
33
tests/baselines/reference/iteratorSpreadInArray7.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
//// [iteratorSpreadInArray7.ts]
|
||||
var array: symbol[];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray7.js]
|
||||
var array;
|
||||
array.concat([
|
||||
...new SymbolIterator
|
||||
]);
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
43
tests/baselines/reference/iteratorSpreadInArray7.types
Normal file
43
tests/baselines/reference/iteratorSpreadInArray7.types
Normal file
|
@ -0,0 +1,43 @@
|
|||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts ===
|
||||
var array: symbol[];
|
||||
>array : symbol[]
|
||||
|
||||
array.concat([...new SymbolIterator]);
|
||||
>array.concat([...new SymbolIterator]) : symbol[]
|
||||
>array.concat : { <U extends symbol[]>(...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }
|
||||
>array : symbol[]
|
||||
>concat : { <U extends symbol[]>(...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }
|
||||
>[...new SymbolIterator] : symbol[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
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
|
||||
}
|
||||
}
|
16
tests/baselines/reference/iteratorSpreadInArray8.errors.txt
Normal file
16
tests/baselines/reference/iteratorSpreadInArray8.errors.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts(1,17): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
24
tests/baselines/reference/iteratorSpreadInArray8.js
Normal file
24
tests/baselines/reference/iteratorSpreadInArray8.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
//// [iteratorSpreadInArray8.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray8.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
33
tests/baselines/reference/iteratorSpreadInArray9.errors.txt
Normal file
33
tests/baselines/reference/iteratorSpreadInArray9.errors.txt
Normal file
|
@ -0,0 +1,33 @@
|
|||
tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable<symbol>'.
|
||||
Types of property '[Symbol.iterator]' are incompatible.
|
||||
Type '() => SymbolIterator' is not assignable to type '() => Iterator<symbol>'.
|
||||
Type 'SymbolIterator' is not assignable to type 'Iterator<symbol>'.
|
||||
Types of property 'next' are incompatible.
|
||||
Type '() => { value: symbol; }' is not assignable to type '() => IteratorResult<symbol>'.
|
||||
Type '{ value: symbol; }' is not assignable to type 'IteratorResult<symbol>'.
|
||||
Property 'done' is missing in type '{ value: symbol; }'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable<symbol>'.
|
||||
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
|
||||
!!! error TS2322: Type '() => SymbolIterator' is not assignable to type '() => Iterator<symbol>'.
|
||||
!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator<symbol>'.
|
||||
!!! error TS2322: Types of property 'next' are incompatible.
|
||||
!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '() => IteratorResult<symbol>'.
|
||||
!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult<symbol>'.
|
||||
!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
29
tests/baselines/reference/iteratorSpreadInArray9.js
Normal file
29
tests/baselines/reference/iteratorSpreadInArray9.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
//// [iteratorSpreadInArray9.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray9.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts
Normal file
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
28
tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts
Normal file
28
tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
//@target: ES6
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts
Normal file
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
//@target: ES6
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts
Normal file
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
//@target: ES6
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts
Normal file
15
tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts
Normal file
|
@ -0,0 +1,15 @@
|
|||
//@target: ES6
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
16
tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts
Normal file
16
tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
//@target: ES6
|
||||
var array: symbol[];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
11
tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts
Normal file
11
tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
14
tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts
Normal file
14
tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue