From 63f39c5009c2cf5e2c84650411733ad50e4397d3 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Fri, 9 Sep 2016 08:42:05 -0700 Subject: [PATCH] Handle `OmittedExpression` nodes in binding patterns --- scripts/tslint/preferConstRule.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/tslint/preferConstRule.ts b/scripts/tslint/preferConstRule.ts index 60d771863be7d..9425d2b60795a 100644 --- a/scripts/tslint/preferConstRule.ts +++ b/scripts/tslint/preferConstRule.ts @@ -93,11 +93,16 @@ class PreferConstWalker extends Lint.RuleWalker { private visitBindingPatternIdentifiers(pattern: ts.BindingPattern) { for (const element of pattern.elements) { - if (element.name.kind === ts.SyntaxKind.Identifier) { - this.markAssignment(element.name as ts.Identifier); + if (element.kind !== ts.SyntaxKind.BindingElement) { + continue; + } + + const name = (element).name; + if (name.kind === ts.SyntaxKind.Identifier) { + this.markAssignment(name as ts.Identifier); } else { - this.visitBindingPatternIdentifiers(element.name as ts.BindingPattern); + this.visitBindingPatternIdentifiers(name as ts.BindingPattern); } } } @@ -191,7 +196,9 @@ class PreferConstWalker extends Lint.RuleWalker { private collectBindingPatternIdentifiers(value: ts.VariableDeclaration, pattern: ts.BindingPattern, table: ts.MapLike) { for (const element of pattern.elements) { - this.collectNameIdentifiers(value, element.name, table); + if (element.kind === ts.SyntaxKind.BindingElement) { + this.collectNameIdentifiers(value, (element).name, table); + } } } }