Skip to content

Commit 0d7f0e0

Browse files
committed
Test:infer from related types only
1 parent 13750d2 commit 0d7f0e0

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//// [doNotInferUnrelatedTypes.ts]
2+
// #16709
3+
declare function dearray<T>(ara: ReadonlyArray<T>): T;
4+
type LiteralType = "foo" | "bar";
5+
declare var alt: Array<LiteralType>;
6+
7+
let foo: LiteralType = dearray(alt);
8+
9+
10+
//// [doNotInferUnrelatedTypes.js]
11+
var foo = dearray(alt);
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
=== tests/cases/compiler/doNotInferUnrelatedTypes.ts ===
2+
// #16709
3+
declare function dearray<T>(ara: ReadonlyArray<T>): T;
4+
>dearray : Symbol(dearray, Decl(doNotInferUnrelatedTypes.ts, 0, 0))
5+
>T : Symbol(T, Decl(doNotInferUnrelatedTypes.ts, 1, 25))
6+
>ara : Symbol(ara, Decl(doNotInferUnrelatedTypes.ts, 1, 28))
7+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.d.ts, --, --))
8+
>T : Symbol(T, Decl(doNotInferUnrelatedTypes.ts, 1, 25))
9+
>T : Symbol(T, Decl(doNotInferUnrelatedTypes.ts, 1, 25))
10+
11+
type LiteralType = "foo" | "bar";
12+
>LiteralType : Symbol(LiteralType, Decl(doNotInferUnrelatedTypes.ts, 1, 54))
13+
14+
declare var alt: Array<LiteralType>;
15+
>alt : Symbol(alt, Decl(doNotInferUnrelatedTypes.ts, 3, 11))
16+
>Array : Symbol(Array, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
17+
>LiteralType : Symbol(LiteralType, Decl(doNotInferUnrelatedTypes.ts, 1, 54))
18+
19+
let foo: LiteralType = dearray(alt);
20+
>foo : Symbol(foo, Decl(doNotInferUnrelatedTypes.ts, 5, 3))
21+
>LiteralType : Symbol(LiteralType, Decl(doNotInferUnrelatedTypes.ts, 1, 54))
22+
>dearray : Symbol(dearray, Decl(doNotInferUnrelatedTypes.ts, 0, 0))
23+
>alt : Symbol(alt, Decl(doNotInferUnrelatedTypes.ts, 3, 11))
24+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
=== tests/cases/compiler/doNotInferUnrelatedTypes.ts ===
2+
// #16709
3+
declare function dearray<T>(ara: ReadonlyArray<T>): T;
4+
>dearray : <T>(ara: ReadonlyArray<T>) => T
5+
>T : T
6+
>ara : ReadonlyArray<T>
7+
>ReadonlyArray : ReadonlyArray<T>
8+
>T : T
9+
>T : T
10+
11+
type LiteralType = "foo" | "bar";
12+
>LiteralType : LiteralType
13+
14+
declare var alt: Array<LiteralType>;
15+
>alt : LiteralType[]
16+
>Array : T[]
17+
>LiteralType : LiteralType
18+
19+
let foo: LiteralType = dearray(alt);
20+
>foo : LiteralType
21+
>LiteralType : LiteralType
22+
>dearray(alt) : LiteralType
23+
>dearray : <T>(ara: ReadonlyArray<T>) => T
24+
>alt : LiteralType[]
25+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// #16709
2+
declare function dearray<T>(ara: ReadonlyArray<T>): T;
3+
type LiteralType = "foo" | "bar";
4+
declare var alt: Array<LiteralType>;
5+
6+
let foo: LiteralType = dearray(alt);

0 commit comments

Comments
 (0)