Skip to content

Commit 143fd5d

Browse files
committed
New test and baselines
1 parent 3f99b74 commit 143fd5d

File tree

5 files changed

+149
-10
lines changed

5 files changed

+149
-10
lines changed

tests/baselines/reference/localTypes3.types

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ function f2() {
5454
>X : X
5555

5656
class C<Y> {
57-
>C : C<X, Y>
57+
>C : C<Y>
5858
>Y : Y
5959

6060
public x = x;
@@ -75,21 +75,21 @@ function f2() {
7575
>10 : number
7676

7777
let v = new C("hello");
78-
>v : C<number, string>
79-
>new C("hello") : C<number, string>
78+
>v : f<number>.C<string>
79+
>new C("hello") : f<number>.C<string>
8080
>C : typeof C
8181
>"hello" : string
8282

8383
let x = v.x;
8484
>x : number
8585
>v.x : number
86-
>v : C<number, string>
86+
>v : f<number>.C<string>
8787
>x : number
8888

8989
let y = v.y;
9090
>y : string
9191
>v.y : string
92-
>v : C<number, string>
92+
>v : f<number>.C<string>
9393
>y : string
9494
}
9595

@@ -106,7 +106,7 @@ function f3() {
106106
>Y : Y
107107

108108
class C {
109-
>C : C<X, Y>
109+
>C : C
110110

111111
public x = x;
112112
>x : X
@@ -127,20 +127,20 @@ function f3() {
127127
>"hello" : string
128128

129129
let v = new C();
130-
>v : C<number, string>
131-
>new C() : C<number, string>
130+
>v : f<number, string>.C
131+
>new C() : f<number, string>.C
132132
>C : typeof C
133133

134134
let x = v.x;
135135
>x : number
136136
>v.x : number
137-
>v : C<number, string>
137+
>v : f<number, string>.C
138138
>x : number
139139

140140
let y = v.y;
141141
>y : string
142142
>v.y : string
143-
>v : C<number, string>
143+
>v : f<number, string>.C
144144
>y : string
145145
}
146146

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//// [localTypes5.ts]
2+
function foo<A>() {
3+
class X {
4+
m<B, C>() {
5+
return (function <D>() {
6+
class Y<E> {
7+
}
8+
return new Y<string>();
9+
})<Date>();
10+
}
11+
}
12+
var x = new X();
13+
return x.m<number, boolean>();
14+
}
15+
var x = foo<void>();
16+
17+
18+
//// [localTypes5.js]
19+
function foo() {
20+
var X = (function () {
21+
function X() {
22+
}
23+
X.prototype.m = function () {
24+
return (function () {
25+
var Y = (function () {
26+
function Y() {
27+
}
28+
return Y;
29+
})();
30+
return new Y();
31+
})();
32+
};
33+
return X;
34+
})();
35+
var x = new X();
36+
return x.m();
37+
}
38+
var x = foo();
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
=== tests/cases/conformance/types/localTypes/localTypes5.ts ===
2+
function foo<A>() {
3+
>foo : Symbol(foo, Decl(localTypes5.ts, 0, 0))
4+
>A : Symbol(A, Decl(localTypes5.ts, 0, 13))
5+
6+
class X {
7+
>X : Symbol(X, Decl(localTypes5.ts, 0, 19))
8+
9+
m<B, C>() {
10+
>m : Symbol(m, Decl(localTypes5.ts, 1, 13))
11+
>B : Symbol(B, Decl(localTypes5.ts, 2, 10))
12+
>C : Symbol(C, Decl(localTypes5.ts, 2, 12))
13+
14+
return (function <D>() {
15+
>D : Symbol(D, Decl(localTypes5.ts, 3, 30))
16+
17+
class Y<E> {
18+
>Y : Symbol(Y, Decl(localTypes5.ts, 3, 36))
19+
>E : Symbol(E, Decl(localTypes5.ts, 4, 24))
20+
}
21+
return new Y<string>();
22+
>Y : Symbol(Y, Decl(localTypes5.ts, 3, 36))
23+
24+
})<Date>();
25+
>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11))
26+
}
27+
}
28+
var x = new X();
29+
>x : Symbol(x, Decl(localTypes5.ts, 10, 7))
30+
>X : Symbol(X, Decl(localTypes5.ts, 0, 19))
31+
32+
return x.m<number, boolean>();
33+
>x.m : Symbol(X.m, Decl(localTypes5.ts, 1, 13))
34+
>x : Symbol(x, Decl(localTypes5.ts, 10, 7))
35+
>m : Symbol(X.m, Decl(localTypes5.ts, 1, 13))
36+
}
37+
var x = foo<void>();
38+
>x : Symbol(x, Decl(localTypes5.ts, 13, 3))
39+
>foo : Symbol(foo, Decl(localTypes5.ts, 0, 0))
40+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
=== tests/cases/conformance/types/localTypes/localTypes5.ts ===
2+
function foo<A>() {
3+
>foo : <A>() => X.m<number, boolean>.<Date>.Y<string>
4+
>A : A
5+
6+
class X {
7+
>X : X
8+
9+
m<B, C>() {
10+
>m : <B, C>() => <Date>.Y<string>
11+
>B : B
12+
>C : C
13+
14+
return (function <D>() {
15+
>(function <D>() { class Y<E> { } return new Y<string>(); })<Date>() : <Date>.Y<string>
16+
>(function <D>() { class Y<E> { } return new Y<string>(); }) : <D>() => Y<string>
17+
>function <D>() { class Y<E> { } return new Y<string>(); } : <D>() => Y<string>
18+
>D : D
19+
20+
class Y<E> {
21+
>Y : Y<E>
22+
>E : E
23+
}
24+
return new Y<string>();
25+
>new Y<string>() : Y<string>
26+
>Y : typeof Y
27+
28+
})<Date>();
29+
>Date : Date
30+
}
31+
}
32+
var x = new X();
33+
>x : X
34+
>new X() : X
35+
>X : typeof X
36+
37+
return x.m<number, boolean>();
38+
>x.m<number, boolean>() : X.m<number, boolean>.<Date>.Y<string>
39+
>x.m : <B, C>() => <Date>.Y<string>
40+
>x : X
41+
>m : <B, C>() => <Date>.Y<string>
42+
}
43+
var x = foo<void>();
44+
>x : foo<void>.X.m<number, boolean>.<Date>.Y<string>
45+
>foo<void>() : foo<void>.X.m<number, boolean>.<Date>.Y<string>
46+
>foo : <A>() => X.m<number, boolean>.<Date>.Y<string>
47+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function foo<A>() {
2+
class X {
3+
m<B, C>() {
4+
return (function <D>() {
5+
class Y<E> {
6+
}
7+
return new Y<string>();
8+
})<Date>();
9+
}
10+
}
11+
var x = new X();
12+
return x.m<number, boolean>();
13+
}
14+
var x = foo<void>();

0 commit comments

Comments
 (0)