Skip to content

Commit 90ffdf7

Browse files
committed
Adding test
1 parent 1858810 commit 90ffdf7

File tree

4 files changed

+116
-0
lines changed

4 files changed

+116
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//// [intersectionTypeOverloading.ts]
2+
// Check that order is preserved in intersection types for purposes of
3+
// overload resolution
4+
5+
type F = (s: string) => string;
6+
type G = (x: any) => any;
7+
8+
var fg: F & G;
9+
var gf: G & F;
10+
11+
var x = fg("abc");
12+
var x: string;
13+
14+
var y = gf("abc");
15+
var y: any;
16+
17+
18+
//// [intersectionTypeOverloading.js]
19+
// Check that order is preserved in intersection types for purposes of
20+
// overload resolution
21+
var fg;
22+
var gf;
23+
var x = fg("abc");
24+
var x;
25+
var y = gf("abc");
26+
var y;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
=== tests/cases/conformance/types/intersection/intersectionTypeOverloading.ts ===
2+
// Check that order is preserved in intersection types for purposes of
3+
// overload resolution
4+
5+
type F = (s: string) => string;
6+
>F : Symbol(F, Decl(intersectionTypeOverloading.ts, 0, 0))
7+
>s : Symbol(s, Decl(intersectionTypeOverloading.ts, 3, 10))
8+
9+
type G = (x: any) => any;
10+
>G : Symbol(G, Decl(intersectionTypeOverloading.ts, 3, 31))
11+
>x : Symbol(x, Decl(intersectionTypeOverloading.ts, 4, 10))
12+
13+
var fg: F & G;
14+
>fg : Symbol(fg, Decl(intersectionTypeOverloading.ts, 6, 3))
15+
>F : Symbol(F, Decl(intersectionTypeOverloading.ts, 0, 0))
16+
>G : Symbol(G, Decl(intersectionTypeOverloading.ts, 3, 31))
17+
18+
var gf: G & F;
19+
>gf : Symbol(gf, Decl(intersectionTypeOverloading.ts, 7, 3))
20+
>G : Symbol(G, Decl(intersectionTypeOverloading.ts, 3, 31))
21+
>F : Symbol(F, Decl(intersectionTypeOverloading.ts, 0, 0))
22+
23+
var x = fg("abc");
24+
>x : Symbol(x, Decl(intersectionTypeOverloading.ts, 9, 3), Decl(intersectionTypeOverloading.ts, 10, 3))
25+
>fg : Symbol(fg, Decl(intersectionTypeOverloading.ts, 6, 3))
26+
27+
var x: string;
28+
>x : Symbol(x, Decl(intersectionTypeOverloading.ts, 9, 3), Decl(intersectionTypeOverloading.ts, 10, 3))
29+
30+
var y = gf("abc");
31+
>y : Symbol(y, Decl(intersectionTypeOverloading.ts, 12, 3), Decl(intersectionTypeOverloading.ts, 13, 3))
32+
>gf : Symbol(gf, Decl(intersectionTypeOverloading.ts, 7, 3))
33+
34+
var y: any;
35+
>y : Symbol(y, Decl(intersectionTypeOverloading.ts, 12, 3), Decl(intersectionTypeOverloading.ts, 13, 3))
36+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
=== tests/cases/conformance/types/intersection/intersectionTypeOverloading.ts ===
2+
// Check that order is preserved in intersection types for purposes of
3+
// overload resolution
4+
5+
type F = (s: string) => string;
6+
>F : (s: string) => string
7+
>s : string
8+
9+
type G = (x: any) => any;
10+
>G : (x: any) => any
11+
>x : any
12+
13+
var fg: F & G;
14+
>fg : ((s: string) => string) & ((x: any) => any)
15+
>F : (s: string) => string
16+
>G : (x: any) => any
17+
18+
var gf: G & F;
19+
>gf : ((x: any) => any) & ((s: string) => string)
20+
>G : (x: any) => any
21+
>F : (s: string) => string
22+
23+
var x = fg("abc");
24+
>x : string
25+
>fg("abc") : string
26+
>fg : ((s: string) => string) & ((x: any) => any)
27+
>"abc" : string
28+
29+
var x: string;
30+
>x : string
31+
32+
var y = gf("abc");
33+
>y : any
34+
>gf("abc") : any
35+
>gf : ((x: any) => any) & ((s: string) => string)
36+
>"abc" : string
37+
38+
var y: any;
39+
>y : any
40+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Check that order is preserved in intersection types for purposes of
2+
// overload resolution
3+
4+
type F = (s: string) => string;
5+
type G = (x: any) => any;
6+
7+
var fg: F & G;
8+
var gf: G & F;
9+
10+
var x = fg("abc");
11+
var x: string;
12+
13+
var y = gf("abc");
14+
var y: any;

0 commit comments

Comments
 (0)