From afec4ea965ae81d28fb9289162752dbd0325fa6c Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Sat, 15 Dec 2018 01:37:31 -0800 Subject: [PATCH 1/2] fix references crash --- .../Language/LanguageService.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/PowerShellEditorServices/Language/LanguageService.cs b/src/PowerShellEditorServices/Language/LanguageService.cs index 92964e1b6..6b6e8e75a 100644 --- a/src/PowerShellEditorServices/Language/LanguageService.cs +++ b/src/PowerShellEditorServices/Language/LanguageService.cs @@ -330,22 +330,28 @@ public async Task FindReferencesOfSymbol( ? new OrderedDictionary() : new OrderedDictionary(StringComparer.OrdinalIgnoreCase); - foreach (ScriptFile file in referencedFiles) + foreach (ScriptFile scriptFile in referencedFiles) { - fileMap.Add(file.FilePath, file); + if (!fileMap.Contains(scriptFile.FilePath)) + { + fileMap.Add(scriptFile.FilePath, scriptFile); + } } - foreach (string file in workspace.EnumeratePSFiles()) + foreach (string filePath in workspace.EnumeratePSFiles()) { - if (!fileMap.Contains(file)) + if (!fileMap.Contains(filePath)) { - if (!workspace.TryGetFile(file, out ScriptFile scriptFile)) + if (!workspace.TryGetFile(filePath, out ScriptFile scriptFile)) { // If we can't access the file for some reason, just ignore it continue; } - fileMap.Add(file, scriptFile); + if (!fileMap.Contains(filePath)) + { + fileMap.Add(filePath, scriptFile); + } } } From d1d875d3350dc7032b955a4a7cf6b88dca1dabb1 Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Mon, 17 Dec 2018 00:08:01 -0800 Subject: [PATCH 2/2] address feedback --- .../Language/LanguageService.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/PowerShellEditorServices/Language/LanguageService.cs b/src/PowerShellEditorServices/Language/LanguageService.cs index 6b6e8e75a..d5c58ea83 100644 --- a/src/PowerShellEditorServices/Language/LanguageService.cs +++ b/src/PowerShellEditorServices/Language/LanguageService.cs @@ -332,10 +332,7 @@ public async Task FindReferencesOfSymbol( foreach (ScriptFile scriptFile in referencedFiles) { - if (!fileMap.Contains(scriptFile.FilePath)) - { - fileMap.Add(scriptFile.FilePath, scriptFile); - } + fileMap[scriptFile.FilePath] = scriptFile; } foreach (string filePath in workspace.EnumeratePSFiles()) @@ -348,10 +345,7 @@ public async Task FindReferencesOfSymbol( continue; } - if (!fileMap.Contains(filePath)) - { - fileMap.Add(filePath, scriptFile); - } + fileMap[filePath] = scriptFile; } }