File: vararg.symbols

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (127 lines) | stat: -rw-r--r-- 4,259 bytes parent folder | download | duplicates (5)
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
=== tests/cases/compiler/vararg.ts ===
module M {
>M : Symbol(M, Decl(vararg.ts, 0, 0))

    export class C {
>C : Symbol(C, Decl(vararg.ts, 0, 10))

        public f(x:string,...rest:number[]) {
>f : Symbol(C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 2, 17))
>rest : Symbol(rest, Decl(vararg.ts, 2, 26))

            var sum=0;
>sum : Symbol(sum, Decl(vararg.ts, 3, 15))

            for (var i=0;i<rest.length;i++) {
>i : Symbol(i, Decl(vararg.ts, 4, 20))
>i : Symbol(i, Decl(vararg.ts, 4, 20))
>rest.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>rest : Symbol(rest, Decl(vararg.ts, 2, 26))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(vararg.ts, 4, 20))

                sum+=rest[i];
>sum : Symbol(sum, Decl(vararg.ts, 3, 15))
>rest : Symbol(rest, Decl(vararg.ts, 2, 26))
>i : Symbol(i, Decl(vararg.ts, 4, 20))
            }
            result+=(x+": "+sum);
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x : Symbol(x, Decl(vararg.ts, 2, 17))
>sum : Symbol(sum, Decl(vararg.ts, 3, 15))

            return result;
>result : Symbol(result, Decl(vararg.ts, 26, 3))
        }

        public fnope(x:string,...rest:number) {
>fnope : Symbol(C.fnope, Decl(vararg.ts, 9, 9))
>x : Symbol(x, Decl(vararg.ts, 11, 21))
>rest : Symbol(rest, Decl(vararg.ts, 11, 30))
    
        }

        public fonly(...rest:string[]) {
>fonly : Symbol(C.fonly, Decl(vararg.ts, 13, 9))
>rest : Symbol(rest, Decl(vararg.ts, 15, 21))

            builder="";
            for (var i=0;i<rest.length;i++) {
>i : Symbol(i, Decl(vararg.ts, 17, 20))
>i : Symbol(i, Decl(vararg.ts, 17, 20))
>rest.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>rest : Symbol(rest, Decl(vararg.ts, 15, 21))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(vararg.ts, 17, 20))

                builder+=rest[i];
>rest : Symbol(rest, Decl(vararg.ts, 15, 21))
>i : Symbol(i, Decl(vararg.ts, 17, 20))
            }
            return builder;
        }
    }
}

var x=new M.C();
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>M.C : Symbol(M.C, Decl(vararg.ts, 0, 10))
>M : Symbol(M, Decl(vararg.ts, 0, 0))
>C : Symbol(M.C, Decl(vararg.ts, 0, 10))

var result="";
>result : Symbol(result, Decl(vararg.ts, 26, 3))

result+=x.f(x,3,3); // bad first param
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 25, 3))

result+=x.f(3,"hello",3); // bad second param
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))

result+=x.f("hello",3,3,3,3,3); // ok
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))

result+=x.f("hello"); // ok varargs length 0
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>f : Symbol(M.C.f, Decl(vararg.ts, 1, 20))

result+=x.fonly(3); // ok conversion
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))

result+=x.fonly(x); // bad param
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))
>x : Symbol(x, Decl(vararg.ts, 25, 3))

result+=x.fonly("a"); // ok 
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))

result+=x.fonly("a","b","c","d"); //ok 
>result : Symbol(result, Decl(vararg.ts, 26, 3))
>x.fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))
>x : Symbol(x, Decl(vararg.ts, 25, 3))
>fonly : Symbol(M.C.fonly, Decl(vararg.ts, 13, 9))