File: controlFlowInOperator.js

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (120 lines) | stat: -rw-r--r-- 2,276 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
//// [tests/cases/conformance/controlFlow/controlFlowInOperator.ts] ////

//// [controlFlowInOperator.ts]
const a = 'a';
const b = 'b';
const d = 'd';

type A = { [a]: number; };
type B = { [b]: string; };

declare const c: A | B;

if ('a' in c) {
    c;      // A
    c['a']; // number;
}

if ('d' in c) {
    c; // never
}

if (a in c) {
    c;    // A
    c[a]; // number;
}

if (d in c) {
    c; // never
}

// repro from https://github.com/microsoft/TypeScript/issues/54790

function uniqueID_54790(
  id: string | undefined,
  seenIDs: { [key: string]: string }
): string {
  if (id === undefined) {
    id = "1";
  }
  if (!(id in seenIDs)) {
    return id;
  }
  for (let i = 1; i < Number.MAX_VALUE; i++) {
    const newID = `${id}-${i}`;
    if (!(newID in seenIDs)) {
      return newID;
    }
  }
  throw Error("heat death of the universe");
}

function uniqueID_54790_2(id: string | number, seenIDs: object) {
  id = "a";
  for (let i = 1; i < 3; i++) {
    const newID = `${id}`;
    if (newID in seenIDs) {
    }
  }
}

function uniqueID_54790_3(id: string | number, seenIDs: object) {
  id = "a";
  for (let i = 1; i < 3; i++) {
    const newID = id;
    if (newID in seenIDs) {
    }
  }
}


//// [controlFlowInOperator.js]
var a = 'a';
var b = 'b';
var d = 'd';
if ('a' in c) {
    c; // A
    c['a']; // number;
}
if ('d' in c) {
    c; // never
}
if (a in c) {
    c; // A
    c[a]; // number;
}
if (d in c) {
    c; // never
}
// repro from https://github.com/microsoft/TypeScript/issues/54790
function uniqueID_54790(id, seenIDs) {
    if (id === undefined) {
        id = "1";
    }
    if (!(id in seenIDs)) {
        return id;
    }
    for (var i = 1; i < Number.MAX_VALUE; i++) {
        var newID = "".concat(id, "-").concat(i);
        if (!(newID in seenIDs)) {
            return newID;
        }
    }
    throw Error("heat death of the universe");
}
function uniqueID_54790_2(id, seenIDs) {
    id = "a";
    for (var i = 1; i < 3; i++) {
        var newID = "".concat(id);
        if (newID in seenIDs) {
        }
    }
}
function uniqueID_54790_3(id, seenIDs) {
    id = "a";
    for (var i = 1; i < 3; i++) {
        var newID = id;
        if (newID in seenIDs) {
        }
    }
}