Skip to content

Commit e882806

Browse files
committed
Accept new baselines
1 parent 7d11c7f commit e882806

3 files changed

Lines changed: 116 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [subtypeRelationForNever.ts]
2+
function fail(message: string) : never { throw new Error(message); }
3+
function withFew<a, r>(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r): r {
4+
return values.length > 0 ? haveFew(values) : haveNone('No values.');
5+
}
6+
function id<a>(value: a) : a { return value; }
7+
const result = withFew([1, 2, 3], id, fail); // expected result is number[]
8+
9+
10+
//// [subtypeRelationForNever.js]
11+
function fail(message) { throw new Error(message); }
12+
function withFew(values, haveFew, haveNone) {
13+
return values.length > 0 ? haveFew(values) : haveNone('No values.');
14+
}
15+
function id(value) { return value; }
16+
var result = withFew([1, 2, 3], id, fail); // expected result is number[]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
=== tests/cases/compiler/subtypeRelationForNever.ts ===
2+
function fail(message: string) : never { throw new Error(message); }
3+
>fail : Symbol(fail, Decl(subtypeRelationForNever.ts, 0, 0))
4+
>message : Symbol(message, Decl(subtypeRelationForNever.ts, 0, 14))
5+
>Error : Symbol(Error, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
6+
>message : Symbol(message, Decl(subtypeRelationForNever.ts, 0, 14))
7+
8+
function withFew<a, r>(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r): r {
9+
>withFew : Symbol(withFew, Decl(subtypeRelationForNever.ts, 0, 68))
10+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 1, 17))
11+
>r : Symbol(r, Decl(subtypeRelationForNever.ts, 1, 19))
12+
>values : Symbol(values, Decl(subtypeRelationForNever.ts, 1, 23))
13+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 1, 17))
14+
>haveFew : Symbol(haveFew, Decl(subtypeRelationForNever.ts, 1, 35))
15+
>values : Symbol(values, Decl(subtypeRelationForNever.ts, 1, 46))
16+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 1, 17))
17+
>r : Symbol(r, Decl(subtypeRelationForNever.ts, 1, 19))
18+
>haveNone : Symbol(haveNone, Decl(subtypeRelationForNever.ts, 1, 64))
19+
>reason : Symbol(reason, Decl(subtypeRelationForNever.ts, 1, 76))
20+
>r : Symbol(r, Decl(subtypeRelationForNever.ts, 1, 19))
21+
>r : Symbol(r, Decl(subtypeRelationForNever.ts, 1, 19))
22+
23+
return values.length > 0 ? haveFew(values) : haveNone('No values.');
24+
>values.length : Symbol(Array.length, Decl(lib.d.ts, --, --))
25+
>values : Symbol(values, Decl(subtypeRelationForNever.ts, 1, 23))
26+
>length : Symbol(Array.length, Decl(lib.d.ts, --, --))
27+
>haveFew : Symbol(haveFew, Decl(subtypeRelationForNever.ts, 1, 35))
28+
>values : Symbol(values, Decl(subtypeRelationForNever.ts, 1, 23))
29+
>haveNone : Symbol(haveNone, Decl(subtypeRelationForNever.ts, 1, 64))
30+
}
31+
function id<a>(value: a) : a { return value; }
32+
>id : Symbol(id, Decl(subtypeRelationForNever.ts, 3, 1))
33+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 4, 12))
34+
>value : Symbol(value, Decl(subtypeRelationForNever.ts, 4, 15))
35+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 4, 12))
36+
>a : Symbol(a, Decl(subtypeRelationForNever.ts, 4, 12))
37+
>value : Symbol(value, Decl(subtypeRelationForNever.ts, 4, 15))
38+
39+
const result = withFew([1, 2, 3], id, fail); // expected result is number[]
40+
>result : Symbol(result, Decl(subtypeRelationForNever.ts, 5, 5))
41+
>withFew : Symbol(withFew, Decl(subtypeRelationForNever.ts, 0, 68))
42+
>id : Symbol(id, Decl(subtypeRelationForNever.ts, 3, 1))
43+
>fail : Symbol(fail, Decl(subtypeRelationForNever.ts, 0, 0))
44+
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
=== tests/cases/compiler/subtypeRelationForNever.ts ===
2+
function fail(message: string) : never { throw new Error(message); }
3+
>fail : (message: string) => never
4+
>message : string
5+
>new Error(message) : Error
6+
>Error : ErrorConstructor
7+
>message : string
8+
9+
function withFew<a, r>(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r): r {
10+
>withFew : <a, r>(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r) => r
11+
>a : a
12+
>r : r
13+
>values : a[]
14+
>a : a
15+
>haveFew : (values: a[]) => r
16+
>values : a[]
17+
>a : a
18+
>r : r
19+
>haveNone : (reason: string) => r
20+
>reason : string
21+
>r : r
22+
>r : r
23+
24+
return values.length > 0 ? haveFew(values) : haveNone('No values.');
25+
>values.length > 0 ? haveFew(values) : haveNone('No values.') : r
26+
>values.length > 0 : boolean
27+
>values.length : number
28+
>values : a[]
29+
>length : number
30+
>0 : number
31+
>haveFew(values) : r
32+
>haveFew : (values: a[]) => r
33+
>values : a[]
34+
>haveNone('No values.') : r
35+
>haveNone : (reason: string) => r
36+
>'No values.' : string
37+
}
38+
function id<a>(value: a) : a { return value; }
39+
>id : <a>(value: a) => a
40+
>a : a
41+
>value : a
42+
>a : a
43+
>a : a
44+
>value : a
45+
46+
const result = withFew([1, 2, 3], id, fail); // expected result is number[]
47+
>result : number[]
48+
>withFew([1, 2, 3], id, fail) : number[]
49+
>withFew : <a, r>(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r) => r
50+
>[1, 2, 3] : number[]
51+
>1 : number
52+
>2 : number
53+
>3 : number
54+
>id : <a>(value: a) => a
55+
>fail : (message: string) => never
56+

0 commit comments

Comments
 (0)