@@ -2635,13 +2635,14 @@ namespace ts {
2635
2635
|| node.kind === SyntaxKind.ExportAssignment && exportAssignmentIsAlias(node as ExportAssignment)
2636
2636
|| isBinaryExpression(node) && getAssignmentDeclarationKind(node) === AssignmentDeclarationKind.ModuleExports && exportAssignmentIsAlias(node)
2637
2637
|| isAccessExpression(node)
2638
- && isBinaryExpression(node.parent)
2639
- && node.parent.left === node
2640
- && node.parent.operatorToken.kind === SyntaxKind.EqualsToken
2641
- && isAliasableOrJsExpression(node.parent.right)
2638
+ && isBinaryExpression(node.parent)
2639
+ && node.parent.left === node
2640
+ && node.parent.operatorToken.kind === SyntaxKind.EqualsToken
2641
+ && isAliasableOrJsExpression(node.parent.right)
2642
2642
|| node.kind === SyntaxKind.ShorthandPropertyAssignment
2643
2643
|| node.kind === SyntaxKind.PropertyAssignment && isAliasableOrJsExpression((node as PropertyAssignment).initializer)
2644
- || isVariableDeclarationInitializedToBareOrAccessedRequire(node);
2644
+ || node.kind === SyntaxKind.VariableDeclaration && isVariableDeclarationInitializedToBareOrAccessedRequire(node)
2645
+ || node.kind === SyntaxKind.BindingElement && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);
2645
2646
}
2646
2647
2647
2648
function isAliasableOrJsExpression(e: Expression) {
@@ -37819,8 +37820,8 @@ namespace ts {
37819
37820
}
37820
37821
// For a commonjs `const x = require`, validate the alias and exit
37821
37822
const symbol = getSymbolOfNode(node);
37822
- if (symbol.flags & SymbolFlags.Alias && isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
37823
- checkAliasSymbol(node);
37823
+ if (symbol.flags & SymbolFlags.Alias && isVariableDeclarationInitializedToBareOrAccessedRequire(node.kind === SyntaxKind.BindingElement ? node.parent.parent : node )) {
37824
+ checkAliasSymbol(node as BindingElement | VariableDeclaration );
37824
37825
return;
37825
37826
}
37826
37827
@@ -40684,7 +40685,7 @@ namespace ts {
40684
40685
return true;
40685
40686
}
40686
40687
40687
- function checkAliasSymbol(node: ImportEqualsDeclaration | VariableDeclaration | ImportClause | NamespaceImport | ImportSpecifier | ExportSpecifier | NamespaceExport) {
40688
+ function checkAliasSymbol(node: ImportEqualsDeclaration | VariableDeclaration | ImportClause | NamespaceImport | ImportSpecifier | ExportSpecifier | NamespaceExport | BindingElement ) {
40688
40689
let symbol = getSymbolOfNode(node);
40689
40690
const target = resolveAlias(symbol);
40690
40691
0 commit comments