-
Notifications
You must be signed in to change notification settings - Fork 12.8k
/
Copy pathimplicitConstParameters.symbols
138 lines (108 loc) · 4.69 KB
/
implicitConstParameters.symbols
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//// [tests/cases/compiler/implicitConstParameters.ts] ////
=== implicitConstParameters.ts ===
function doSomething(cb: () => void) {
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>cb : Symbol(cb, Decl(implicitConstParameters.ts, 0, 21))
cb();
>cb : Symbol(cb, Decl(implicitConstParameters.ts, 0, 21))
}
function fn(x: number | string) {
>fn : Symbol(fn, Decl(implicitConstParameters.ts, 2, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 4, 12))
if (typeof x === 'number') {
>x : Symbol(x, Decl(implicitConstParameters.ts, 4, 12))
doSomething(() => x.toFixed());
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 4, 12))
>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
}
}
function f1(x: string | undefined) {
>f1 : Symbol(f1, Decl(implicitConstParameters.ts, 8, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 10, 12))
if (!x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 10, 12))
return;
}
doSomething(() => x.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 10, 12))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
function f2(x: string | undefined) {
>f2 : Symbol(f2, Decl(implicitConstParameters.ts, 15, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 17, 12))
if (x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 17, 12))
doSomething(() => {
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
doSomething(() => x.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 17, 12))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
});
}
}
function f3(x: string | undefined) {
>f3 : Symbol(f3, Decl(implicitConstParameters.ts, 23, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 25, 12))
inner();
>inner : Symbol(inner, Decl(implicitConstParameters.ts, 26, 12))
function inner() {
>inner : Symbol(inner, Decl(implicitConstParameters.ts, 26, 12))
if (x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 25, 12))
doSomething(() => x.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 25, 12))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
}
}
function f4(x: string | undefined) {
>f4 : Symbol(f4, Decl(implicitConstParameters.ts, 32, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 34, 12))
x = "abc";
>x : Symbol(x, Decl(implicitConstParameters.ts, 34, 12))
if (x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 34, 12))
doSomething(() => x.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 34, 12))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
}
function f5(x: string | undefined) {
>f5 : Symbol(f5, Decl(implicitConstParameters.ts, 39, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 41, 12))
if (x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 41, 12))
doSomething(() => x.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(implicitConstParameters.ts, 41, 12))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
x = "abc"; // causes x to be considered non-const
>x : Symbol(x, Decl(implicitConstParameters.ts, 41, 12))
}
function f6(x: string | undefined) {
>f6 : Symbol(f6, Decl(implicitConstParameters.ts, 46, 1))
>x : Symbol(x, Decl(implicitConstParameters.ts, 49, 12))
const y = x || "";
>y : Symbol(y, Decl(implicitConstParameters.ts, 50, 9))
>x : Symbol(x, Decl(implicitConstParameters.ts, 49, 12))
if (x) {
>x : Symbol(x, Decl(implicitConstParameters.ts, 49, 12))
doSomething(() => y.length);
>doSomething : Symbol(doSomething, Decl(implicitConstParameters.ts, 0, 0))
>y.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>y : Symbol(y, Decl(implicitConstParameters.ts, 50, 9))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
}