Skip to content

Commit 9ccdf04

Browse files
committed
Still get aparent type
1 parent c874409 commit 9ccdf04

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

src/compiler/checker.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13128,9 +13128,10 @@ namespace ts {
1312813128
*/
1312913129
function getInstantiatedContextualType(node: Expression, checkMode?: CheckMode): Type {
1313013130
if (checkMode === CheckMode.Inferential && node.contextualType && node.contextualMapper) {
13131-
return instantiateType(node.contextualType, node.contextualMapper);
13131+
const type = instantiateType(node.contextualType, node.contextualMapper);
13132+
return type && getApparentType(type);
1313213133
}
13133-
return getContextualType(node, checkMode);
13134+
return getApparentTypeOfContextualType(node, checkMode);
1313413135
}
1313513136

1313613137
/**

tests/baselines/reference/inferentialTypingUsingApparentType2.types

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function foo<T extends { m(p: string): number }>(x: T): T {
1313
}
1414

1515
foo({ m(x) { return x.length } });
16-
>foo({ m(x) { return x.length } }) : { m(p: string): number; }
16+
>foo({ m(x) { return x.length } }) : { m(x: string): number; }
1717
>foo : <T extends { m(p: string): number; }>(x: T) => T
1818
>{ m(x) { return x.length } } : { m(x: string): number; }
1919
>m : (x: string) => number

tests/baselines/reference/inferringAnyFunctionType5.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ function f<T extends { q: (p1: number) => number }>(p: T): T {
1313
}
1414

1515
var v = f({ q: x => x });
16-
>v : { q: (p1: number) => number; }
17-
>f({ q: x => x }) : { q: (p1: number) => number; }
16+
>v : { q: (x: number) => number; }
17+
>f({ q: x => x }) : { q: (x: number) => number; }
1818
>f : <T extends { q: (p1: number) => number; }>(p: T) => T
1919
>{ q: x => x } : { q: (x: number) => number; }
2020
>q : (x: number) => number

0 commit comments

Comments
 (0)