Skip to content

Commit d892a55

Browse files
Use 'propertyName' when available in a BindingPattern.
1 parent d3c59f4 commit d892a55

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/services/services.ts

+15-4
Original file line numberDiff line numberDiff line change
@@ -3363,20 +3363,31 @@ namespace ts {
33633363

33643364
let existingMemberNames: Map<boolean> = {};
33653365
for (let m of existingMembers) {
3366+
// Ignore omitted expressions for missing members
33663367
if (m.kind !== SyntaxKind.PropertyAssignment &&
33673368
m.kind !== SyntaxKind.ShorthandPropertyAssignment &&
33683369
m.kind !== SyntaxKind.BindingElement) {
3369-
// Ignore omitted expressions for missing members
33703370
continue;
33713371
}
33723372

3373+
// If this is the current item we are editing right now, do not filter it out
33733374
if (m.getStart() <= position && position <= m.getEnd()) {
3374-
// If this is the current item we are editing right now, do not filter it out
33753375
continue;
33763376
}
33773377

3378-
// TODO(jfreeman): Account for computed property name
3379-
existingMemberNames[(<Identifier>m.name).text] = true;
3378+
let existingName: string;
3379+
3380+
if (m.kind === SyntaxKind.BindingElement && (<BindingElement>m).propertyName) {
3381+
existingName = (<BindingElement>m).propertyName.text;
3382+
}
3383+
else {
3384+
// TODO(jfreeman): Account for computed property name
3385+
// NOTE: if one only performs this step when m.name is an identifier,
3386+
// things like '__proto__' are not filtered out.
3387+
existingName = (<Identifier>m.name).text;
3388+
}
3389+
3390+
existingMemberNames[existingName] = true;
33803391
}
33813392

33823393
let filteredMembers: Symbol[] = [];

0 commit comments

Comments
 (0)