Skip to content

Commit 3fa24c7

Browse files
committed
Add tests
1 parent b1b0073 commit 3fa24c7

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3855,7 +3855,7 @@ namespace ts {
38553855
}
38563856
if (type.flags & TypeFlags.TypeParameter || objectFlags & ObjectFlags.ClassOrInterface) {
38573857
if (type.flags & TypeFlags.TypeParameter && contains(context.inferTypeParameters, type)) {
3858-
context.approximateLength += (symbolName(type.symbol).length + 6);
3858+
context.approximateLength += 6 + (type.symbol ? symbolName(type.symbol).length : 1);
38593859
return createInferTypeNode(typeParameterToDeclarationWithConstraint(type as TypeParameter, context, /*constraintNode*/ undefined));
38603860
}
38613861
if (context.flags & NodeBuilderFlags.GenerateNamesForShadowedTypeParams &&
@@ -4791,7 +4791,7 @@ namespace ts {
47914791
return cached;
47924792
}
47934793
}
4794-
let result = symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ true);
4794+
let result = type.symbol ? symbolToName(type.symbol, context, SymbolFlags.Type, /*expectsIdentifier*/ true) : createIdentifier("?");
47954795
if (!(result.kind & SyntaxKind.Identifier)) {
47964796
return createIdentifier("(Missing type parameter)");
47974797
}

tests/cases/compiler/asyncFunctionReturnType.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,11 @@ async function fGenericIndexedTypeForPromiseOfKProp<TObj extends Obj, K extends
7373

7474
async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K]> {
7575
return Promise.resolve<TObj[K]>(obj[key]);
76-
}
76+
}
77+
78+
// #27711
79+
80+
async function fGeneric<T>(x: T) {
81+
return x;
82+
}
83+
const result: Promise<number> = fGeneric(undefined as Promise<number>);

0 commit comments

Comments
 (0)