diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl
index add223a477e..add68869804 100644
--- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -483,6 +483,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1758,6 +1770,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1935,6 +1965,24 @@
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
-
@@ -2814,6 +2862,12 @@
+ -
+
+
+
+
+
-
@@ -3270,6 +3324,12 @@
+ -
+
+
+
+
+
-
@@ -5697,6 +5757,12 @@
+ -
+
+
+
+
+
-
@@ -5733,6 +5799,12 @@
+ -
+
+
+
+
+
-
@@ -6165,6 +6237,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6174,6 +6288,12 @@
+ -
+
+
+
+
+
-
@@ -7209,6 +7329,12 @@
+ -
+
+
+
+
+
-
@@ -7227,6 +7353,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8835,6 +8973,12 @@
+ -
+
+
+
+
+
-
@@ -9384,6 +9528,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl
index 82b7f8e5acf..de96a342067 100644
--- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -483,6 +483,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1758,6 +1770,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1938,12 +1968,18 @@
-
+
+
+
-
+
+
+
@@ -2826,6 +2862,12 @@
+ -
+
+
+
+
+
-
@@ -3282,6 +3324,12 @@
+ -
+
+
+
+
+
-
@@ -5709,6 +5757,12 @@
+ -
+
+
+
+
+
-
@@ -5745,6 +5799,12 @@
+ -
+
+
+
+
+
-
@@ -6177,6 +6237,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6186,6 +6288,12 @@
+ -
+
+
+
+
+
-
@@ -7221,6 +7329,12 @@
+ -
+
+
+
+
+
-
@@ -7239,6 +7353,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8847,6 +8973,12 @@
+ -
+
+
+
+
+
-
@@ -9396,6 +9528,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl
index e715164369d..2a1883d8c1e 100644
--- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -483,6 +483,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1755,6 +1767,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1935,12 +1965,18 @@
-
+
+
+
-
+
+
+
@@ -2823,6 +2859,12 @@
+ -
+
+
+
+
+
-
@@ -3279,6 +3321,12 @@
+ -
+
+
+
+
+
-
@@ -5706,6 +5754,12 @@
+ -
+
+
+
+
+
-
@@ -5742,6 +5796,12 @@
+ -
+
+
+
+
+
-
@@ -6171,6 +6231,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6180,6 +6282,12 @@
+ -
+
+
+
+
+
-
@@ -7215,6 +7323,12 @@
+ -
+
+
+
+
+
-
@@ -7233,6 +7347,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8841,6 +8967,12 @@
+ -
+
+
+
+
+
-
@@ -9390,6 +9522,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl
index f44525312d3..f723f786b33 100644
--- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -492,6 +492,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1770,6 +1782,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1950,12 +1980,18 @@
-
+
+
+
-
+
+
+
@@ -2838,6 +2874,12 @@
+ -
+
+
+
+
+
-
@@ -3294,6 +3336,12 @@
+ -
+
+
+
+
+
-
@@ -5721,6 +5769,12 @@
+ -
+
+
+
+
+
-
@@ -5757,6 +5811,12 @@
+ -
+
+
+
+
+
-
@@ -6189,6 +6249,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6198,6 +6300,12 @@
+ -
+
+
+
+
+
-
@@ -7233,6 +7341,12 @@
+ -
+
+
+
+
+
-
@@ -7251,6 +7365,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8859,6 +8985,12 @@
+ -
+
+
+
+
+
-
@@ -9408,6 +9540,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl
index d13446474d0..8abfd535e1c 100644
--- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -492,6 +492,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1770,6 +1782,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1950,12 +1980,18 @@
-
+
+
+
-
+
+
+
@@ -2838,6 +2874,12 @@
+ -
+
+
+
+
+
-
@@ -3294,6 +3336,12 @@
+ -
+
+
+
+
+
-
@@ -5721,6 +5769,12 @@
+ -
+
+
+
+
+
-
@@ -5757,6 +5811,12 @@
+ -
+
+
+
+
+
-
@@ -6189,6 +6249,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6198,6 +6300,12 @@
+ -
+
+
+
+
+
-
@@ -7233,6 +7341,12 @@
+ -
+
+
+
+
+
-
@@ -7251,6 +7365,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8859,6 +8985,12 @@
+ -
+
+
+
+
+
-
@@ -9408,6 +9540,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl
index 803851db20c..e77d6f627be 100644
--- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -483,6 +483,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1758,6 +1770,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1938,12 +1968,18 @@
-
+
+
+
-
+
+
+
@@ -2826,6 +2862,12 @@
+ -
+
+
+
+
+
-
@@ -3282,6 +3324,12 @@
+ -
+
+
+
+
+
-
@@ -5709,6 +5757,12 @@
+ -
+
+
+
+
+
-
@@ -5745,6 +5799,12 @@
+ -
+
+
+
+
+
-
@@ -6177,6 +6237,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6186,6 +6288,12 @@
+ -
+
+
+
+
+
-
@@ -7221,6 +7329,12 @@
+ -
+
+
+
+
+
-
@@ -7239,6 +7353,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8847,6 +8973,12 @@
+ -
+
+
+
+
+
-
@@ -9396,6 +9528,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl
index 591661b36f2..44a886375ac 100644
--- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -483,6 +483,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1758,6 +1770,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1938,12 +1968,18 @@
-
+
+
+
-
+
+
+
@@ -2826,6 +2862,12 @@
+ -
+
+
+
+
+
-
@@ -3282,6 +3324,12 @@
+ -
+
+
+
+
+
-
@@ -5709,6 +5757,12 @@
+ -
+
+
+
+
+
-
@@ -5745,6 +5799,12 @@
+ -
+
+
+
+
+
-
@@ -6177,6 +6237,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6186,6 +6288,12 @@
+ -
+
+
+
+
+
-
@@ -7221,6 +7329,12 @@
+ -
+
+
+
+
+
-
@@ -7239,6 +7353,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8847,6 +8973,12 @@
+ -
+
+
+
+
+
-
@@ -9396,6 +9528,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl
index 9adcb4e9b65..5a0220002aa 100644
--- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -476,6 +476,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1748,6 +1760,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1928,12 +1958,18 @@
-
+
+
+
-
+
+
+
@@ -2816,6 +2852,12 @@
+ -
+
+
+
+
+
-
@@ -3272,6 +3314,12 @@
+ -
+
+
+
+
+
-
@@ -5699,6 +5747,12 @@
+ -
+
+
+
+
+
-
@@ -5735,6 +5789,12 @@
+ -
+
+
+
+
+
-
@@ -6164,6 +6224,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6173,6 +6275,12 @@
+ -
+
+
+
+
+
-
@@ -7208,6 +7316,12 @@
+ -
+
+
+
+
+
-
@@ -7226,6 +7340,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8834,6 +8960,12 @@
+ -
+
+
+
+
+
-
@@ -9383,6 +9515,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl
index 84040c75f1c..04335da0e83 100644
--- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl
+++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl
@@ -476,6 +476,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1751,6 +1763,24 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -1931,12 +1961,18 @@
-
+
+
+
-
+
+
+
@@ -2819,6 +2855,12 @@
+ -
+
+
+
+
+
-
@@ -3275,6 +3317,12 @@
+ -
+
+
+
+
+
-
@@ -5702,6 +5750,12 @@
+ -
+
+
+
+
+
-
@@ -5738,6 +5792,12 @@
+ -
+
+
+
+
+
-
@@ -6170,6 +6230,48 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -6179,6 +6281,12 @@
+ -
+
+
+
+
+
-
@@ -7214,6 +7322,12 @@
+ -
+
+
+
+
+
-
@@ -7232,6 +7346,18 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -8840,6 +8966,12 @@
+ -
+
+
+
+
+
-
@@ -9389,6 +9521,12 @@
+ -
+
+
+
+
+
-
diff --git a/src/server/session.ts b/src/server/session.ts
index d24e2addd33..8ec6d357423 100644
--- a/src/server/session.ts
+++ b/src/server/session.ts
@@ -1700,7 +1700,7 @@ namespace ts.server {
private getEditsForFileRename(args: protocol.GetEditsForFileRenameRequestArgs, simplifiedResult: boolean): ReadonlyArray | ReadonlyArray {
const { file, project } = this.getFileAndProject(args);
- const changes = project.getLanguageService().getEditsForFileRename(args.oldFilePath, args.newFilePath, this.getFormatOptions(file), this.getPreferences(file));
+ const changes = project.getLanguageService().getEditsForFileRename(toNormalizedPath(args.oldFilePath), toNormalizedPath(args.newFilePath), this.getFormatOptions(file), this.getPreferences(file));
return simplifiedResult ? this.mapTextChangesToCodeEdits(project, changes) : changes;
}
diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts
index 394e487e2f0..46dd83851c1 100644
--- a/src/services/findAllReferences.ts
+++ b/src/services/findAllReferences.ts
@@ -1035,14 +1035,16 @@ namespace ts.FindAllReferences.Core {
if (!(isMethodOrAccessor(member) && hasModifier(member, ModifierFlags.Static))) {
continue;
}
- member.body!.forEachChild(function cb(node) {
- if (node.kind === SyntaxKind.ThisKeyword) {
- addRef(node);
- }
- else if (!isFunctionLike(node)) {
- node.forEachChild(cb);
- }
- });
+ if (member.body) {
+ member.body.forEachChild(function cb(node) {
+ if (node.kind === SyntaxKind.ThisKeyword) {
+ addRef(node);
+ }
+ else if (!isFunctionLike(node) && !isClassLike(node)) {
+ node.forEachChild(cb);
+ }
+ });
+ }
}
}
diff --git a/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts b/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts
index 4802ca40448..f2c432abc76 100644
--- a/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts
+++ b/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts
@@ -4,7 +4,12 @@
//// static s() {
//// [|this|];
//// }
-//// static get f() { return [|this|]; }
+//// static get f() {
+//// return [|this|];
+////
+//// function inner() { this; }
+//// class Inner { x = this; }
+//// }
////}
const [r0, r1, r2] = test.ranges();
diff --git a/tests/cases/fourslash/findAllRefsDeclareClass.ts b/tests/cases/fourslash/findAllRefsDeclareClass.ts
new file mode 100644
index 00000000000..9ef813634a5
--- /dev/null
+++ b/tests/cases/fourslash/findAllRefsDeclareClass.ts
@@ -0,0 +1,7 @@
+///
+
+////declare class [|{| "isWriteAccess": true, "isDefinition": true |}C|] {
+//// static m(): void;
+////}
+
+verify.singleReferenceGroup("class C");