Skip to content

Commit b8b53a3

Browse files
committed
Revert "get rid of hasMatchingArgument call"
This reverts commit 511c333.
1 parent 511c333 commit b8b53a3

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/compiler/checker.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26740,7 +26740,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
2674026740
function hasMatchingArgument(expression: CallExpression | NewExpression, reference: Node) {
2674126741
if (expression.arguments) {
2674226742
for (const argument of expression.arguments) {
26743-
if (isOrContainsMatchingReference(reference, argument) || optionalChainContainsReference(argument, reference)) {
26743+
if (
26744+
isOrContainsMatchingReference(reference, argument)
26745+
|| optionalChainContainsReference(argument, reference)
26746+
|| isAccessExpression(argument) && isMatchingReference(reference, argument.expression)
26747+
) {
2674426748
return true;
2674526749
}
2674626750
}
@@ -28754,10 +28758,12 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
2875428758
}
2875528759

2875628760
function narrowTypeByCallExpression(type: Type, callExpression: CallExpression, assumeTrue: boolean): Type {
28757-
const signature = assumeTrue || !isCallChain(callExpression) ? getEffectsSignature(callExpression) : undefined;
28758-
const predicate = signature && getTypePredicateOfSignature(signature);
28759-
if (predicate && (predicate.kind === TypePredicateKind.This || predicate.kind === TypePredicateKind.Identifier)) {
28760-
return narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue);
28761+
if (hasMatchingArgument(callExpression, reference)) {
28762+
const signature = assumeTrue || !isCallChain(callExpression) ? getEffectsSignature(callExpression) : undefined;
28763+
const predicate = signature && getTypePredicateOfSignature(signature);
28764+
if (predicate && (predicate.kind === TypePredicateKind.This || predicate.kind === TypePredicateKind.Identifier)) {
28765+
return narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue);
28766+
}
2876128767
}
2876228768
if (containsMissingType(type) && isAccessExpression(reference) && isPropertyAccessExpression(callExpression.expression)) {
2876328769
const callAccess = callExpression.expression;

0 commit comments

Comments
 (0)