Skip to content

Commit 372a1ab

Browse files
committed
inline helper
1 parent c790579 commit 372a1ab

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

src/compiler/checker.ts

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34515,21 +34515,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
3451534515
}
3451634516

3451734517
function checkAssertionWorker(node: JSDocTypeAssertion | AssertionExpression, checkMode: CheckMode | undefined) {
34518-
const { type, expression } = getAssertionTypeAndExpression(node);
34519-
if (isConstTypeReference(type)) {
34520-
if (!isValidConstAssertionArgument(expression)) {
34521-
error(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);
34522-
}
34523-
return getRegularTypeOfLiteralType(checkExpression(expression, checkMode));
34524-
}
34525-
const links = getNodeLinks(node);
34526-
links.assertionExpressionType = checkExpression(expression, checkMode);
34527-
checkSourceElement(type);
34528-
checkNodeDeferred(node);
34529-
return getTypeFromTypeNode(type);
34530-
}
34531-
34532-
function getAssertionTypeAndExpression(node: JSDocTypeAssertion | AssertionExpression) {
3453334518
let type: TypeNode;
3453434519
let expression: Expression;
3453534520
switch (node.kind) {
@@ -34543,12 +34528,23 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
3454334528
expression = node.expression;
3454434529
break;
3454534530
}
34546-
34547-
return { type, expression };
34531+
if (isConstTypeReference(type)) {
34532+
if (!isValidConstAssertionArgument(expression)) {
34533+
error(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);
34534+
}
34535+
return getRegularTypeOfLiteralType(checkExpression(expression, checkMode));
34536+
}
34537+
const links = getNodeLinks(node);
34538+
links.assertionExpressionType = checkExpression(expression, checkMode);
34539+
checkSourceElement(type);
34540+
checkNodeDeferred(node);
34541+
return getTypeFromTypeNode(type);
3454834542
}
3454934543

3455034544
function checkAssertionDeferred(node: JSDocTypeAssertion | AssertionExpression) {
34551-
const { type } = getAssertionTypeAndExpression(node);
34545+
const type = node.kind === SyntaxKind.ParenthesizedExpression
34546+
? getJSDocTypeAssertionType(node)
34547+
: node.type;
3455234548
const errNode = isParenthesizedExpression(node) ? type : node;
3455334549
const links = getNodeLinks(node);
3455434550
Debug.assertIsDefined(links.assertionExpressionType);

0 commit comments

Comments
 (0)