From 7e0ea5b762e5715aae6670f04a217fe61fdab4be Mon Sep 17 00:00:00 2001 From: Jonathon Marolf Date: Mon, 14 Mar 2016 12:50:51 -0700 Subject: [PATCH] check if syntax tree is present --- .../Completion/AbstractCompletionService.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Features/Core/Portable/Completion/AbstractCompletionService.cs b/src/Features/Core/Portable/Completion/AbstractCompletionService.cs index 16b57766e29..5fc474ff333 100644 --- a/src/Features/Core/Portable/Completion/AbstractCompletionService.cs +++ b/src/Features/Core/Portable/Completion/AbstractCompletionService.cs @@ -278,17 +278,24 @@ private static CompletionItem Disambiguate(CompletionItem item, CompletionItem e CancellationToken cancellationToken) { var context = new CompletionListContext(document, position, triggerInfo, options, cancellationToken); - var root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false); - if (!root.FullSpan.IntersectsWith(position)) + if (document.SupportsSyntaxTree) { - try + var root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false); + if (!root.FullSpan.IntersectsWith(position)) { - // Trying to track down source of https://github.com/dotnet/roslyn/issues/9325 - var sourceText = await document.GetTextAsync(cancellationToken).ConfigureAwait(false); - ReportException(position, root, sourceText); + try + { + // Trying to track down source of https://github.com/dotnet/roslyn/issues/9325 + var sourceText = await document.GetTextAsync(cancellationToken).ConfigureAwait(false); + ReportException(position, root, sourceText); + } + catch (Exception e) when (FatalError.ReportWithoutCrash(e)) + { + } } - catch (Exception e) when (FatalError.ReportWithoutCrash(e)) + else { + await provider.ProduceCompletionListAsync(context).ConfigureAwait(false); } } else -- GitLab