Skip to content

Commit e41533a

Browse files
committed
Handle computed property names
1 parent 01bbc4d commit e41533a

File tree

3 files changed

+33
-28
lines changed

3 files changed

+33
-28
lines changed

src/services/findAllReferences.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,16 @@ namespace ts.FindAllReferences {
6262
node.parent.parent.left === node.parent ?
6363
node.parent.parent :
6464
undefined;
65-
return binaryExpression && getAssignmentDeclarationKind(binaryExpression) !== AssignmentDeclarationKind.None ?
66-
getDeclarationForDeclarationSpan(binaryExpression) :
67-
undefined;
65+
if (binaryExpression && getAssignmentDeclarationKind(binaryExpression) !== AssignmentDeclarationKind.None) {
66+
return getDeclarationForDeclarationSpan(binaryExpression);
67+
}
6868
}
69-
return undefined;
69+
70+
// Handle computed property name
71+
const propertyName = findAncestor(node, isComputedPropertyName);
72+
return propertyName ?
73+
getDeclarationForDeclarationSpan(propertyName.parent) :
74+
undefined;
7075
}
7176

7277
if (isConstructorDeclaration(node.parent) ||
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,58 @@
11
/// <reference path='fourslash.ts' />
22

33
////interface I {
4-
//// [|prop1|]: () => void;
4+
//// [|[|{| "declarationRangeIndex": 0 |}prop1|]: () => void;|]
55
//// prop2(): void;
66
////}
77
////
88
////var o1: I = {
9-
//// [|prop1|]() { },
9+
//// [|[|{| "declarationRangeIndex": 2 |}prop1|]() { }|],
1010
//// prop2() { }
1111
////};
1212
////
1313
////var o2: I = {
14-
//// [|prop1|]: () => { },
14+
//// [|[|{| "declarationRangeIndex": 4 |}prop1|]: () => { }|],
1515
//// prop2: () => { }
1616
////};
1717
////
1818
////var o3: I = {
19-
//// get [|prop1|]() { return () => { }; },
19+
//// [|get [|{| "declarationRangeIndex": 6 |}prop1|]() { return () => { }; }|],
2020
//// get prop2() { return () => { }; }
2121
////};
2222
////
2323
////var o4: I = {
24-
//// set [|prop1|](v) { },
24+
//// [|set [|{| "declarationRangeIndex": 8 |}prop1|](v) { }|],
2525
//// set prop2(v) { }
2626
////};
2727
////
2828
////var o5: I = {
29-
//// "[|prop1|]"() { },
29+
//// [|"[|{| "declarationRangeIndex": 10 |}prop1|]"() { }|],
3030
//// "prop2"() { }
3131
////};
3232
////
3333
////var o6: I = {
34-
//// "[|prop1|]": function () { },
34+
//// [|"[|{| "declarationRangeIndex": 12 |}prop1|]": function () { }|],
3535
//// "prop2": function () { }
3636
////};
3737
////
3838
////var o7: I = {
39-
//// ["[|prop1|]"]: function () { },
39+
//// [|["[|{| "declarationRangeIndex": 14 |}prop1|]"]: function () { }|],
4040
//// ["prop2"]: function () { }
4141
////};
4242
////
4343
////var o8: I = {
44-
//// ["[|prop1|]"]() { },
44+
//// [|["[|{| "declarationRangeIndex": 16 |}prop1|]"]() { }|],
4545
//// ["prop2"]() { }
4646
////};
4747
////
4848
////var o9: I = {
49-
//// get ["[|prop1|]"]() { return () => { }; },
49+
//// [|get ["[|{| "declarationRangeIndex": 18 |}prop1|]"]() { return () => { }; }|],
5050
//// get ["prop2"]() { return () => { }; }
5151
////};
5252
////
5353
////var o10: I = {
54-
//// set ["[|prop1|]"](v) { },
54+
//// [|set ["[|{| "declarationRangeIndex": 20 |}prop1|]"](v) { }|],
5555
//// set ["prop2"](v) { }
5656
////};
5757

58-
verify.rangesAreRenameLocations();
58+
verify.rangesAreRenameLocations(test.rangesByText().get("prop1"));

tests/cases/fourslash/renameContextuallyTypedProperties2.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,57 @@
22

33
////interface I {
44
//// prop1: () => void;
5-
//// [|prop2|](): void;
5+
//// [|[|{| "declarationRangeIndex": 0 |}prop2|](): void;|]
66
////}
77
////
88
////var o1: I = {
99
//// prop1() { },
10-
//// [|prop2|]() { }
10+
//// [|[|{| "declarationRangeIndex": 2 |}prop2|]() { }|]
1111
////};
1212
////
1313
////var o2: I = {
1414
//// prop1: () => { },
15-
//// [|prop2|]: () => { }
15+
//// [|[|{| "declarationRangeIndex": 4 |}prop2|]: () => { }|]
1616
////};
1717
////
1818
////var o3: I = {
1919
//// get prop1() { return () => { }; },
20-
//// get [|prop2|]() { return () => { }; }
20+
//// [|get [|{| "declarationRangeIndex": 6 |}prop2|]() { return () => { }; }|]
2121
////};
2222
////
2323
////var o4: I = {
2424
//// set prop1(v) { },
25-
//// set [|prop2|](v) { }
25+
//// [|set [|{| "declarationRangeIndex": 8 |}prop2|](v) { }|]
2626
////};
2727
////
2828
////var o5: I = {
2929
//// "prop1"() { },
30-
//// "[|prop2|]"() { }
30+
//// [|"[|{| "declarationRangeIndex": 10 |}prop2|]"() { }|]
3131
////};
3232
////
3333
////var o6: I = {
3434
//// "prop1": function () { },
35-
//// "[|prop2|]": function () { }
35+
//// [|"[|{| "declarationRangeIndex": 12 |}prop2|]": function () { }|]
3636
////};
3737
////
3838
////var o7: I = {
3939
//// ["prop1"]: function () { },
40-
//// ["[|prop2|]"]: function () { }
40+
//// [|["[|{| "declarationRangeIndex": 14 |}prop2|]"]: function () { }|]
4141
////};
4242
////
4343
////var o8: I = {
4444
//// ["prop1"]() { },
45-
//// ["[|prop2|]"]() { }
45+
//// [|["[|{| "declarationRangeIndex": 16 |}prop2|]"]() { }|]
4646
////};
4747
////
4848
////var o9: I = {
4949
//// get ["prop1"]() { return () => { }; },
50-
//// get ["[|prop2|]"]() { return () => { }; }
50+
//// [|get ["[|{| "declarationRangeIndex": 18 |}prop2|]"]() { return () => { }; }|]
5151
////};
5252
////
5353
////var o10: I = {
5454
//// set ["prop1"](v) { },
55-
//// set ["[|prop2|]"](v) { }
55+
//// [|set ["[|{| "declarationRangeIndex": 20 |}prop2|]"](v) { }|]
5656
////};
5757

58-
verify.rangesAreRenameLocations();
58+
verify.rangesAreRenameLocations(test.rangesByText().get("prop2"));

0 commit comments

Comments
 (0)