@@ -34516,13 +34516,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
34516
34516
34517
34517
function checkAssertionWorker(node: JSDocTypeAssertion | AssertionExpression, checkMode: CheckMode | undefined) {
34518
34518
const { type, expression } = getAssertionTypeAndExpression(node);
34519
- const exprType = checkExpression(expression, checkMode);
34520
34519
if (isConstTypeReference(type)) {
34521
34520
if (!isValidConstAssertionArgument(expression)) {
34522
34521
error(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);
34523
34522
}
34524
- return getRegularTypeOfLiteralType(exprType );
34523
+ return getRegularTypeOfLiteralType(checkExpression(expression, checkMode) );
34525
34524
}
34525
+ const links = getNodeLinks(node);
34526
+ links.assertionExpressionType = checkExpression(expression, checkMode);
34526
34527
checkSourceElement(type);
34527
34528
checkNodeDeferred(node);
34528
34529
return getTypeFromTypeNode(type);
@@ -34547,9 +34548,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
34547
34548
}
34548
34549
34549
34550
function checkAssertionDeferred(node: JSDocTypeAssertion | AssertionExpression) {
34550
- const { type, expression } = getAssertionTypeAndExpression(node);
34551
+ const { type } = getAssertionTypeAndExpression(node);
34551
34552
const errNode = isParenthesizedExpression(node) ? type : node;
34552
- const exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(checkExpression(expression) ));
34553
+ const exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(getNodeLinks(node).assertionExpressionType! ));
34553
34554
const targetType = getTypeFromTypeNode(type);
34554
34555
if (!isErrorType(targetType)) {
34555
34556
addLazyDiagnostic(() => {
0 commit comments