Skip to content

Commit 3e1b6b8

Browse files
Merge pull request #657 from Microsoft/conformanceTests-624
Conformance Tests for Spec Change in PR#624
2 parents 1b29b51 + c8bb487 commit 3e1b6b8

10 files changed

+436
-74
lines changed

tests/baselines/reference/defaultArgsForwardReferencing.errors.txt

Lines changed: 0 additions & 70 deletions
This file was deleted.
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(24,38): error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
2+
tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(53,38): error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
3+
tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(69,38): error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
4+
tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts(85,38): error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; (b: boolean): Promise<boolean>; }' is not assignable to parameter of type '(x: number) => Promise<boolean>'.
5+
6+
7+
==== tests/cases/conformance/types/typeRelationships/typeInference/genericCallToOverloadedMethodWithOverloadedArguments.ts (4 errors) ====
8+
9+
module m1 {
10+
interface Promise<T> {
11+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
12+
}
13+
14+
declare function testFunction(n: number): Promise<number>;
15+
16+
var numPromise: Promise<number>;
17+
var newPromise = numPromise.then(testFunction);
18+
}
19+
20+
//////////////////////////////////////
21+
22+
module m2 {
23+
interface Promise<T> {
24+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
25+
}
26+
27+
declare function testFunction(n: number): Promise<number>;
28+
declare function testFunction(s: string): Promise<string>;
29+
30+
var numPromise: Promise<number>;
31+
var newPromise = numPromise.then(testFunction);
32+
~~~~~~~~~~~~
33+
!!! error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
34+
}
35+
36+
//////////////////////////////////////
37+
38+
module m3 {
39+
interface Promise<T> {
40+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
41+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
42+
}
43+
44+
declare function testFunction(n: number): Promise<number>;
45+
46+
var numPromise: Promise<number>;
47+
var newPromise = numPromise.then(testFunction);
48+
}
49+
50+
//////////////////////////////////////
51+
52+
module m4 {
53+
interface Promise<T> {
54+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
55+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
56+
}
57+
58+
declare function testFunction(n: number): Promise<number>;
59+
declare function testFunction(s: string): Promise<string>;
60+
61+
var numPromise: Promise<number>;
62+
var newPromise = numPromise.then(testFunction);
63+
~~~~~~~~~~~~
64+
!!! error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
65+
}
66+
67+
//////////////////////////////////////
68+
69+
module m5 {
70+
interface Promise<T> {
71+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
72+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
73+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => U, progress?: (preservation: any) => void): Promise<U>;
74+
}
75+
76+
declare function testFunction(n: number): Promise<number>;
77+
declare function testFunction(s: string): Promise<string>;
78+
79+
var numPromise: Promise<number>;
80+
var newPromise = numPromise.then(testFunction);
81+
~~~~~~~~~~~~
82+
!!! error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; }' is not assignable to parameter of type '(x: number) => Promise<string>'.
83+
}
84+
85+
//////////////////////////////////////
86+
87+
module m6 {
88+
interface Promise<T> {
89+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
90+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
91+
}
92+
93+
declare function testFunction(n: number): Promise<number>;
94+
declare function testFunction(s: string): Promise<string>;
95+
declare function testFunction(b: boolean): Promise<boolean>;
96+
97+
var numPromise: Promise<number>;
98+
var newPromise = numPromise.then(testFunction);
99+
~~~~~~~~~~~~
100+
!!! error TS2345: Argument of type '{ (n: number): Promise<number>; (s: string): Promise<string>; (b: boolean): Promise<boolean>; }' is not assignable to parameter of type '(x: number) => Promise<boolean>'.
101+
}
102+
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
//// [genericCallToOverloadedMethodWithOverloadedArguments.ts]
2+
3+
module m1 {
4+
interface Promise<T> {
5+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
6+
}
7+
8+
declare function testFunction(n: number): Promise<number>;
9+
10+
var numPromise: Promise<number>;
11+
var newPromise = numPromise.then(testFunction);
12+
}
13+
14+
//////////////////////////////////////
15+
16+
module m2 {
17+
interface Promise<T> {
18+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
19+
}
20+
21+
declare function testFunction(n: number): Promise<number>;
22+
declare function testFunction(s: string): Promise<string>;
23+
24+
var numPromise: Promise<number>;
25+
var newPromise = numPromise.then(testFunction);
26+
}
27+
28+
//////////////////////////////////////
29+
30+
module m3 {
31+
interface Promise<T> {
32+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
33+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
34+
}
35+
36+
declare function testFunction(n: number): Promise<number>;
37+
38+
var numPromise: Promise<number>;
39+
var newPromise = numPromise.then(testFunction);
40+
}
41+
42+
//////////////////////////////////////
43+
44+
module m4 {
45+
interface Promise<T> {
46+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
47+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
48+
}
49+
50+
declare function testFunction(n: number): Promise<number>;
51+
declare function testFunction(s: string): Promise<string>;
52+
53+
var numPromise: Promise<number>;
54+
var newPromise = numPromise.then(testFunction);
55+
}
56+
57+
//////////////////////////////////////
58+
59+
module m5 {
60+
interface Promise<T> {
61+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
62+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
63+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => U, progress?: (preservation: any) => void): Promise<U>;
64+
}
65+
66+
declare function testFunction(n: number): Promise<number>;
67+
declare function testFunction(s: string): Promise<string>;
68+
69+
var numPromise: Promise<number>;
70+
var newPromise = numPromise.then(testFunction);
71+
}
72+
73+
//////////////////////////////////////
74+
75+
module m6 {
76+
interface Promise<T> {
77+
then<U>(cb: (x: T) => Promise<U>): Promise<U>;
78+
then<U>(cb: (x: T) => Promise<U>, error?: (error: any) => Promise<U>): Promise<U>;
79+
}
80+
81+
declare function testFunction(n: number): Promise<number>;
82+
declare function testFunction(s: string): Promise<string>;
83+
declare function testFunction(b: boolean): Promise<boolean>;
84+
85+
var numPromise: Promise<number>;
86+
var newPromise = numPromise.then(testFunction);
87+
}
88+
89+
90+
//// [genericCallToOverloadedMethodWithOverloadedArguments.js]
91+
var m1;
92+
(function (m1) {
93+
var numPromise;
94+
var newPromise = numPromise.then(testFunction);
95+
})(m1 || (m1 = {}));
96+
//////////////////////////////////////
97+
var m2;
98+
(function (m2) {
99+
var numPromise;
100+
var newPromise = numPromise.then(testFunction);
101+
})(m2 || (m2 = {}));
102+
//////////////////////////////////////
103+
var m3;
104+
(function (m3) {
105+
var numPromise;
106+
var newPromise = numPromise.then(testFunction);
107+
})(m3 || (m3 = {}));
108+
//////////////////////////////////////
109+
var m4;
110+
(function (m4) {
111+
var numPromise;
112+
var newPromise = numPromise.then(testFunction);
113+
})(m4 || (m4 = {}));
114+
//////////////////////////////////////
115+
var m5;
116+
(function (m5) {
117+
var numPromise;
118+
var newPromise = numPromise.then(testFunction);
119+
})(m5 || (m5 = {}));
120+
//////////////////////////////////////
121+
var m6;
122+
(function (m6) {
123+
var numPromise;
124+
var newPromise = numPromise.then(testFunction);
125+
})(m6 || (m6 = {}));

tests/baselines/reference/moduleWithStatementsOfEveryKind.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ module A {
2222
return 'hello ' + s;
2323
}
2424
var ol = { s: 'hello', id: 2, isvalid: true };
25+
26+
declare class DC {
27+
static x: number;
28+
}
2529
}
2630

2731
module Y {
@@ -47,6 +51,10 @@ module Y {
4751
return 'hello ' + s;
4852
}
4953
export var ol = { s: 'hello', id: 2, isvalid: true };
54+
55+
export declare class DC {
56+
static x: number;
57+
}
5058
}
5159

5260

tests/baselines/reference/moduleWithStatementsOfEveryKind.types

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ module A {
7171
>s : string
7272
>id : number
7373
>isvalid : boolean
74+
75+
declare class DC {
76+
>DC : DC
77+
78+
static x: number;
79+
>x : number
80+
}
7481
}
7582

7683
module Y {
@@ -145,5 +152,12 @@ module Y {
145152
>s : string
146153
>id : number
147154
>isvalid : boolean
155+
156+
export declare class DC {
157+
>DC : DC
158+
159+
static x: number;
160+
>x : number
161+
}
148162
}
149163

0 commit comments

Comments
 (0)