explicit type narrowing lets us avoid coercion

pull/16060/head
Rich Harris 4 months ago
parent 3f402c694c
commit 2add7b3d1e

@ -47,9 +47,8 @@ export function CallExpression(node, context) {
parent?.left?.type === 'MemberExpression' && parent?.left?.type === 'MemberExpression' &&
context.state.in_constructor context.state.in_constructor
) { ) {
/** @type {ClassDeclaration | ClassExpression} */ const constructor = context.path.findLast(
const constructor = /** @type {ClassDeclaration | ClassExpression} */ ( (parent) => parent.type === 'ClassDeclaration' || parent.type === 'ClassExpression'
context.path.findLast((parent) => parent.type.match(/^Class(Declaration|Expression)$/))
); );
const property = get_name(parent.left.property); const property = get_name(parent.left.property);
source_tag = `${constructor?.id?.name ?? '[class]'}.${property}`; source_tag = `${constructor?.id?.name ?? '[class]'}.${property}`;
@ -70,9 +69,8 @@ export function CallExpression(node, context) {
parent?.left?.type === 'MemberExpression' && parent?.left?.type === 'MemberExpression' &&
context.state.in_constructor context.state.in_constructor
) { ) {
/** @type {ClassDeclaration | ClassExpression} */ const constructor = context.path.findLast(
const constructor = /** @type {ClassDeclaration | ClassExpression} */ ( (parent) => parent.type === 'ClassDeclaration' || parent.type === 'ClassExpression'
context.path.findLast((parent) => parent.type.match(/^Class(Declaration|Expression)$/))
); );
const property = get_name(parent.left.property); const property = get_name(parent.left.property);
source_tag = `${constructor?.id?.name ?? '[class]'}.${property}`; source_tag = `${constructor?.id?.name ?? '[class]'}.${property}`;

Loading…
Cancel
Save