Fix getEffectiveCheckNode (#60309)

This commit is contained in:
Gabriela Araujo Britto
2024-11-05 17:14:25 -08:00
committed by GitHub
parent 60dd512a83
commit 8d95ac5968
12 changed files with 190 additions and 8 deletions
+4 -3
View File
@@ -726,7 +726,6 @@ import {
isRightSideOfQualifiedNameOrPropertyAccess,
isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,
isSameEntityName,
isSatisfiesExpression,
isSetAccessor,
isSetAccessorDeclaration,
isShorthandAmbientModuleSymbol,
@@ -35356,8 +35355,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
function getEffectiveCheckNode(argument: Expression): Expression {
argument = skipParentheses(argument);
return isSatisfiesExpression(argument) ? skipParentheses(argument.expression) : argument;
const flags = isInJSFile(argument)
? OuterExpressionKinds.Parentheses | OuterExpressionKinds.Satisfies | OuterExpressionKinds.ExcludeJSDocTypeAssertion
: OuterExpressionKinds.Parentheses | OuterExpressionKinds.Satisfies;
return skipOuterExpressions(argument, flags);
}
function getSignatureApplicabilityError(
+2 -1
View File
@@ -637,8 +637,9 @@ export function isOuterExpression(node: Node, kinds: OuterExpressionKinds = Oute
return (kinds & OuterExpressionKinds.Parentheses) !== 0;
case SyntaxKind.TypeAssertionExpression:
case SyntaxKind.AsExpression:
case SyntaxKind.SatisfiesExpression:
return (kinds & OuterExpressionKinds.TypeAssertions) !== 0;
case SyntaxKind.SatisfiesExpression:
return (kinds & (OuterExpressionKinds.TypeAssertions | OuterExpressionKinds.Satisfies)) !== 0;
case SyntaxKind.ExpressionWithTypeArguments:
return (kinds & OuterExpressionKinds.ExpressionsWithTypeArguments) !== 0;
case SyntaxKind.NonNullExpression:
+2 -1
View File
@@ -8557,8 +8557,9 @@ export const enum OuterExpressionKinds {
NonNullAssertions = 1 << 2,
PartiallyEmittedExpressions = 1 << 3,
ExpressionsWithTypeArguments = 1 << 4,
Satisfies = 1 << 5,
Assertions = TypeAssertions | NonNullAssertions,
Assertions = TypeAssertions | NonNullAssertions | Satisfies,
All = Parentheses | Assertions | PartiallyEmittedExpressions | ExpressionsWithTypeArguments,
ExcludeJSDocTypeAssertion = 1 << 31,