File: controlFlowIIFE.symbols

package info (click to toggle)
node-typescript 2.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 203,952 kB
  • ctags: 52,987
  • sloc: sh: 11; makefile: 5
file content (111 lines) | stat: -rw-r--r-- 3,384 bytes parent folder | download | duplicates (2)
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
=== tests/cases/conformance/controlFlow/controlFlowIIFE.ts ===

declare function getStringOrNumber(): string | number;
>getStringOrNumber : Symbol(getStringOrNumber, Decl(controlFlowIIFE.ts, 0, 0))

function f1() {
>f1 : Symbol(f1, Decl(controlFlowIIFE.ts, 1, 54))

    let x = getStringOrNumber();
>x : Symbol(x, Decl(controlFlowIIFE.ts, 4, 7))
>getStringOrNumber : Symbol(getStringOrNumber, Decl(controlFlowIIFE.ts, 0, 0))

    if (typeof x === "string") {
>x : Symbol(x, Decl(controlFlowIIFE.ts, 4, 7))

        let n = function() {
>n : Symbol(n, Decl(controlFlowIIFE.ts, 6, 11))

            return x.length;
>x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(controlFlowIIFE.ts, 4, 7))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))

        }();
    }
}

function f2() {
>f2 : Symbol(f2, Decl(controlFlowIIFE.ts, 10, 1))

    let x = getStringOrNumber();
>x : Symbol(x, Decl(controlFlowIIFE.ts, 13, 7))
>getStringOrNumber : Symbol(getStringOrNumber, Decl(controlFlowIIFE.ts, 0, 0))

    if (typeof x === "string") {
>x : Symbol(x, Decl(controlFlowIIFE.ts, 13, 7))

        let n = (function() {
>n : Symbol(n, Decl(controlFlowIIFE.ts, 15, 11))

            return x.length;
>x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(controlFlowIIFE.ts, 13, 7))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))

        })();
    }
}

function f3() {
>f3 : Symbol(f3, Decl(controlFlowIIFE.ts, 19, 1))

    let x = getStringOrNumber();
>x : Symbol(x, Decl(controlFlowIIFE.ts, 22, 7))
>getStringOrNumber : Symbol(getStringOrNumber, Decl(controlFlowIIFE.ts, 0, 0))

    let y: number;
>y : Symbol(y, Decl(controlFlowIIFE.ts, 23, 7))

    if (typeof x === "string") {
>x : Symbol(x, Decl(controlFlowIIFE.ts, 22, 7))

        let n = (z => x.length + y + z)(y = 1);
>n : Symbol(n, Decl(controlFlowIIFE.ts, 25, 11))
>z : Symbol(z, Decl(controlFlowIIFE.ts, 25, 17))
>x.length : Symbol(String.length, Decl(lib.d.ts, --, --))
>x : Symbol(x, Decl(controlFlowIIFE.ts, 22, 7))
>length : Symbol(String.length, Decl(lib.d.ts, --, --))
>y : Symbol(y, Decl(controlFlowIIFE.ts, 23, 7))
>z : Symbol(z, Decl(controlFlowIIFE.ts, 25, 17))
>y : Symbol(y, Decl(controlFlowIIFE.ts, 23, 7))
    }
}

// Repros from #8381

let maybeNumber: number | undefined;
>maybeNumber : Symbol(maybeNumber, Decl(controlFlowIIFE.ts, 31, 3))

(function () {
    maybeNumber = 1;
>maybeNumber : Symbol(maybeNumber, Decl(controlFlowIIFE.ts, 31, 3))

})();
maybeNumber++;
>maybeNumber : Symbol(maybeNumber, Decl(controlFlowIIFE.ts, 31, 3))

if (maybeNumber !== undefined) {
>maybeNumber : Symbol(maybeNumber, Decl(controlFlowIIFE.ts, 31, 3))
>undefined : Symbol(undefined)

    maybeNumber++;
>maybeNumber : Symbol(maybeNumber, Decl(controlFlowIIFE.ts, 31, 3))
}

let test: string | undefined;
>test : Symbol(test, Decl(controlFlowIIFE.ts, 40, 3))

if (!test) {
>test : Symbol(test, Decl(controlFlowIIFE.ts, 40, 3))

    throw new Error('Test is not defined');
>Error : Symbol(Error, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
}
(() => {
    test.slice(1); // No error
>test.slice : Symbol(String.slice, Decl(lib.d.ts, --, --))
>test : Symbol(test, Decl(controlFlowIIFE.ts, 40, 3))
>slice : Symbol(String.slice, Decl(lib.d.ts, --, --))

})();