From 4d3e842e9f3e5a7d521662dbb01966bb86875c1b Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 16 Mar 2015 16:47:50 -0700 Subject: [PATCH 1/2] Add assert to make sure getOccurences at position only returns results for the file we request the occurences for. --- src/services/services.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 1bf5f6336d4c9..edb7032b81003 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3571,8 +3571,22 @@ module ts { } } - /// References and Occurrences function getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] { + let results = getOccurrencesAtPositionCore(fileName, position); + + let sourceFile = getCanonicalFileName(normalizeSlashes(fileName)); + + // ensure the results are in the file we're interested in + results.forEach((value) => { + let targetFile = getCanonicalFileName(normalizeSlashes(value.fileName)); + Debug.assert(sourceFile == targetFile, `Unexpected file in results. Found results in ${targetFile} expected only results in ${sourceFile}.`); + }); + + return results; + } + + /// References and Occurrences + function getOccurrencesAtPositionCore(fileName: string, position: number): ReferenceEntry[] { synchronizeHostData(); let sourceFile = getValidSourceFile(fileName); From 325c8b655fe7cd50af49ec5e0be057e7c8140ffa Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Mon, 16 Mar 2015 17:29:56 -0700 Subject: [PATCH 2/2] Add a check to make sure we have results. --- src/services/services.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index edb7032b81003..4458a45ed049f 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3573,14 +3573,16 @@ module ts { function getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] { let results = getOccurrencesAtPositionCore(fileName, position); - - let sourceFile = getCanonicalFileName(normalizeSlashes(fileName)); - - // ensure the results are in the file we're interested in - results.forEach((value) => { - let targetFile = getCanonicalFileName(normalizeSlashes(value.fileName)); - Debug.assert(sourceFile == targetFile, `Unexpected file in results. Found results in ${targetFile} expected only results in ${sourceFile}.`); - }); + + if (results) { + let sourceFile = getCanonicalFileName(normalizeSlashes(fileName)); + + // ensure the results are in the file we're interested in + results.forEach((value) => { + let targetFile = getCanonicalFileName(normalizeSlashes(value.fileName)); + Debug.assert(sourceFile == targetFile, `Unexpected file in results. Found results in ${targetFile} expected only results in ${sourceFile}.`); + }); + } return results; }