Skip to content

Commit 338bc0e

Browse files
Added tests.
1 parent 1ecb896 commit 338bc0e

19 files changed

+320
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
tests/cases/compiler/argumentsObjectIterator01_ES5.ts(4,21): error TS2495: Type 'IArguments' is not an array type or a string type.
2+
3+
4+
==== tests/cases/compiler/argumentsObjectIterator01_ES5.ts (1 errors) ====
5+
6+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
7+
let result = [];
8+
for (let arg of arguments) {
9+
~~~~~~~~~
10+
!!! error TS2495: Type 'IArguments' is not an array type or a string type.
11+
result.push(arg + arg);
12+
}
13+
return <[any, any, any]>result;
14+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//// [argumentsObjectIterator01_ES5.ts]
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let result = [];
5+
for (let arg of arguments) {
6+
result.push(arg + arg);
7+
}
8+
return <[any, any, any]>result;
9+
}
10+
11+
//// [argumentsObjectIterator01_ES5.js]
12+
function doubleAndReturnAsArray(x, y, z) {
13+
var result = [];
14+
for (var _i = 0; _i < arguments.length; _i++) {
15+
var arg = arguments[_i];
16+
result.push(arg + arg);
17+
}
18+
return result;
19+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
tests/cases/compiler/argumentsObjectIterator01_ES6.ts(4,21): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
2+
3+
4+
==== tests/cases/compiler/argumentsObjectIterator01_ES6.ts (1 errors) ====
5+
6+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
7+
let result = [];
8+
for (let arg of arguments) {
9+
~~~~~~~~~
10+
!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
11+
result.push(arg + arg);
12+
}
13+
return <[any, any, any]>result;
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//// [argumentsObjectIterator01_ES6.ts]
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let result = [];
5+
for (let arg of arguments) {
6+
result.push(arg + arg);
7+
}
8+
return <[any, any, any]>result;
9+
}
10+
11+
//// [argumentsObjectIterator01_ES6.js]
12+
function doubleAndReturnAsArray(x, y, z) {
13+
let result = [];
14+
for (let arg of arguments) {
15+
result.push(arg + arg);
16+
}
17+
return result;
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
tests/cases/compiler/argumentsObjectIterator02_ES5.ts(3,26): error TS2304: Cannot find name 'Symbol'.
2+
3+
4+
==== tests/cases/compiler/argumentsObjectIterator02_ES5.ts (1 errors) ====
5+
6+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
7+
let blah = arguments[Symbol.iterator];
8+
~~~~~~
9+
!!! error TS2304: Cannot find name 'Symbol'.
10+
11+
let result = [];
12+
for (let arg of blah()) {
13+
result.push(arg + arg);
14+
}
15+
return <[any, any, any]>result;
16+
}
17+
18+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [argumentsObjectIterator02_ES5.ts]
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let blah = arguments[Symbol.iterator];
5+
6+
let result = [];
7+
for (let arg of blah()) {
8+
result.push(arg + arg);
9+
}
10+
return <[any, any, any]>result;
11+
}
12+
13+
14+
15+
//// [argumentsObjectIterator02_ES5.js]
16+
function doubleAndReturnAsArray(x, y, z) {
17+
var blah = arguments[Symbol.iterator];
18+
var result = [];
19+
for (var _i = 0, _a = blah(); _i < _a.length; _i++) {
20+
var arg = _a[_i];
21+
result.push(arg + arg);
22+
}
23+
return result;
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//// [argumentsObjectIterator02_ES6.ts]
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let blah = arguments[Symbol.iterator];
5+
6+
let result = [];
7+
for (let arg of blah()) {
8+
result.push(arg + arg);
9+
}
10+
return <[any, any, any]>result;
11+
}
12+
13+
14+
15+
//// [argumentsObjectIterator02_ES6.js]
16+
function doubleAndReturnAsArray(x, y, z) {
17+
let blah = arguments[Symbol.iterator];
18+
let result = [];
19+
for (let arg of blah()) {
20+
result.push(arg + arg);
21+
}
22+
return result;
23+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
=== tests/cases/compiler/argumentsObjectIterator02_ES6.ts ===
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
>doubleAndReturnAsArray : Symbol(doubleAndReturnAsArray, Decl(argumentsObjectIterator02_ES6.ts, 0, 0))
5+
>x : Symbol(x, Decl(argumentsObjectIterator02_ES6.ts, 1, 32))
6+
>y : Symbol(y, Decl(argumentsObjectIterator02_ES6.ts, 1, 42))
7+
>z : Symbol(z, Decl(argumentsObjectIterator02_ES6.ts, 1, 53))
8+
9+
let blah = arguments[Symbol.iterator];
10+
>blah : Symbol(blah, Decl(argumentsObjectIterator02_ES6.ts, 2, 7))
11+
>arguments : Symbol(arguments)
12+
>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31))
13+
>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11))
14+
>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31))
15+
16+
let result = [];
17+
>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7))
18+
19+
for (let arg of blah()) {
20+
>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12))
21+
>blah : Symbol(blah, Decl(argumentsObjectIterator02_ES6.ts, 2, 7))
22+
23+
result.push(arg + arg);
24+
>result.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29))
25+
>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7))
26+
>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29))
27+
>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12))
28+
>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12))
29+
}
30+
return <[any, any, any]>result;
31+
>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7))
32+
}
33+
34+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
=== tests/cases/compiler/argumentsObjectIterator02_ES6.ts ===
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
>doubleAndReturnAsArray : (x: number, y: number, z: number) => [number, number, number]
5+
>x : number
6+
>y : number
7+
>z : number
8+
9+
let blah = arguments[Symbol.iterator];
10+
>blah : any
11+
>arguments[Symbol.iterator] : any
12+
>arguments : IArguments
13+
>Symbol.iterator : symbol
14+
>Symbol : SymbolConstructor
15+
>iterator : symbol
16+
17+
let result = [];
18+
>result : any[]
19+
>[] : undefined[]
20+
21+
for (let arg of blah()) {
22+
>arg : any
23+
>blah() : any
24+
>blah : any
25+
26+
result.push(arg + arg);
27+
>result.push(arg + arg) : number
28+
>result.push : (...items: any[]) => number
29+
>result : any[]
30+
>push : (...items: any[]) => number
31+
>arg + arg : any
32+
>arg : any
33+
>arg : any
34+
}
35+
return <[any, any, any]>result;
36+
><[any, any, any]>result : [any, any, any]
37+
>result : any[]
38+
}
39+
40+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
tests/cases/compiler/argumentsObjectIterator03_ES5.ts(3,9): error TS2461: Type 'IArguments' is not an array type.
2+
3+
4+
==== tests/cases/compiler/argumentsObjectIterator03_ES5.ts (1 errors) ====
5+
6+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
7+
let [x, y, z] = arguments;
8+
~~~~~~~~~
9+
!!! error TS2461: Type 'IArguments' is not an array type.
10+
11+
return [z, y, x];
12+
}
13+
14+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [argumentsObjectIterator03_ES5.ts]
2+
3+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
4+
let [x, y, z] = arguments;
5+
6+
return [z, y, x];
7+
}
8+
9+
10+
11+
//// [argumentsObjectIterator03_ES5.js]
12+
function asReversedTuple(a, b, c) {
13+
var x = arguments[0], y = arguments[1], z = arguments[2];
14+
return [z, y, x];
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
tests/cases/compiler/argumentsObjectIterator03_ES6.ts(3,9): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
2+
3+
4+
==== tests/cases/compiler/argumentsObjectIterator03_ES6.ts (1 errors) ====
5+
6+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
7+
let [x, y, z] = arguments;
8+
~~~~~~~~~
9+
!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
10+
11+
return [z, y, x];
12+
}
13+
14+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [argumentsObjectIterator03_ES6.ts]
2+
3+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
4+
let [x, y, z] = arguments;
5+
6+
return [z, y, x];
7+
}
8+
9+
10+
11+
//// [argumentsObjectIterator03_ES6.js]
12+
function asReversedTuple(a, b, c) {
13+
let [x, y, z] = arguments;
14+
return [z, y, x];
15+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@target: ES5
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let result = [];
5+
for (let arg of arguments) {
6+
result.push(arg + arg);
7+
}
8+
return <[any, any, any]>result;
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@target: ES6
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let result = [];
5+
for (let arg of arguments) {
6+
result.push(arg + arg);
7+
}
8+
return <[any, any, any]>result;
9+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//@target: ES5
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let blah = arguments[Symbol.iterator];
5+
6+
let result = [];
7+
for (let arg of blah()) {
8+
result.push(arg + arg);
9+
}
10+
return <[any, any, any]>result;
11+
}
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//@target: ES6
2+
3+
function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] {
4+
let blah = arguments[Symbol.iterator];
5+
6+
let result = [];
7+
for (let arg of blah()) {
8+
result.push(arg + arg);
9+
}
10+
return <[any, any, any]>result;
11+
}
12+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//@target: ES5
2+
3+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
4+
let [x, y, z] = arguments;
5+
6+
return [z, y, x];
7+
}
8+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//@target: ES6
2+
3+
function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] {
4+
let [x, y, z] = arguments;
5+
6+
return [z, y, x];
7+
}
8+

0 commit comments

Comments
 (0)