@@ -16,4 +16,77 @@ let o = {
1616>length : Symbol(String.length, Decl(lib.d.ts, --, --))
1717 }
1818}
19+ let mutuallyRecursive = {
20+ >mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 6, 3))
21+
22+ a: 100,
23+ >a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 6, 25))
24+
25+ start() {
26+ >start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 7, 11))
27+
28+ return this.passthrough(this.a);
29+ >this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 10, 6))
30+ >this : Symbol(, Decl(thisTypeInObjectLiterals.ts, 6, 23))
31+ >passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 10, 6))
32+ >this.a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 6, 25))
33+ >this : Symbol(, Decl(thisTypeInObjectLiterals.ts, 6, 23))
34+ >a : Symbol(a, Decl(thisTypeInObjectLiterals.ts, 6, 25))
35+
36+ },
37+ passthrough(n: number) {
38+ >passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 10, 6))
39+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 11, 16))
40+
41+ return this.sub1(n);
42+ >this.sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 13, 6))
43+ >this : Symbol(, Decl(thisTypeInObjectLiterals.ts, 6, 23))
44+ >sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 13, 6))
45+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 11, 16))
46+
47+ },
48+ sub1(n: number): number {
49+ >sub1 : Symbol(sub1, Decl(thisTypeInObjectLiterals.ts, 13, 6))
50+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 14, 9))
51+
52+ if (n > 0) {
53+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 14, 9))
54+
55+ return this.passthrough(n - 1);
56+ >this.passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 10, 6))
57+ >this : Symbol(, Decl(thisTypeInObjectLiterals.ts, 6, 23))
58+ >passthrough : Symbol(passthrough, Decl(thisTypeInObjectLiterals.ts, 10, 6))
59+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 14, 9))
60+ }
61+ return n;
62+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 14, 9))
63+ }
64+ }
65+ var i: number = mutuallyRecursive.start();
66+ >i : Symbol(i, Decl(thisTypeInObjectLiterals.ts, 21, 3))
67+ >mutuallyRecursive.start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 7, 11))
68+ >mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 6, 3))
69+ >start : Symbol(start, Decl(thisTypeInObjectLiterals.ts, 7, 11))
70+
71+ interface I {
72+ >I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 21, 42))
73+
74+ a: number;
75+ >a : Symbol(I.a, Decl(thisTypeInObjectLiterals.ts, 22, 13))
76+
77+ start(): number;
78+ >start : Symbol(I.start, Decl(thisTypeInObjectLiterals.ts, 23, 14))
79+
80+ passthrough(n: number): number;
81+ >passthrough : Symbol(I.passthrough, Decl(thisTypeInObjectLiterals.ts, 24, 20))
82+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 25, 16))
83+
84+ sub1(n: number): number;
85+ >sub1 : Symbol(I.sub1, Decl(thisTypeInObjectLiterals.ts, 25, 35))
86+ >n : Symbol(n, Decl(thisTypeInObjectLiterals.ts, 26, 9))
87+ }
88+ var impl: I = mutuallyRecursive;
89+ >impl : Symbol(impl, Decl(thisTypeInObjectLiterals.ts, 28, 3))
90+ >I : Symbol(I, Decl(thisTypeInObjectLiterals.ts, 21, 42))
91+ >mutuallyRecursive : Symbol(mutuallyRecursive, Decl(thisTypeInObjectLiterals.ts, 6, 3))
1992
0 commit comments