forked from facebook/flow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforof.js
More file actions
53 lines (45 loc) · 1.03 KB
/
forof.js
File metadata and controls
53 lines (45 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* @flow
*/
function testArray(arr: Array<number>): void {
for (var x of arr) {
(x: string); // Error - number ~> string
}
}
function testIterable1(iterable: Iterable<number>): void {
for (var x of iterable) {
(x: string); // Error - number ~> string
}
}
function testIterable2(iterable: Iterable<*>): void {
for (var x of iterable) {
(x: string);
}
}
function testString(str: string): void {
for (var x of str) {
(x: number); // Error - string ~> number
}
}
function testMap1(map: Map<string, number>): void {
for (var elem of map) {
(elem: [string, number]);
(elem: number); // Error - tuple ~> number
}
}
function testMap2(map: Map<*, *>): void {
for (var elem of map) {
(elem: [number, string]); // Any tuple is fine
(elem: number); // Error - tuple ~> number
}
}
function testSet1(set: Set<string>): void {
for (var x of set) {
(x: number); // Error - string ~> number
}
}
function testSet2(set: Set<*>): void {
for (var x of set) {
(x: number); // Anything goes
}
}