Collect contravariant-only inference candidates from shorter annotated functions (#52609)

This commit is contained in:
Mateusz Burzyński
2023-03-16 19:00:36 +01:00
committed by GitHub
parent 377fe1f34f
commit a6ba2e735d
4 changed files with 127 additions and 0 deletions

View File

@@ -35646,6 +35646,12 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
assignNonContextualParameterTypes(signature);
}
}
else if (contextualSignature && !node.typeParameters && contextualSignature.parameters.length > node.parameters.length) {
const inferenceContext = getInferenceContext(node);
if (checkMode && checkMode & CheckMode.Inferential) {
inferFromAnnotatedParameters(signature, contextualSignature, inferenceContext!);
}
}
if (contextualSignature && !getReturnTypeFromAnnotation(node) && !signature.resolvedReturnType) {
const returnType = getReturnTypeFromBody(node, checkMode);
if (!signature.resolvedReturnType) {