提交 37387d31 编写于 作者: C CyrusNajmabadi

Merge pull request #4848 from CyrusNajmabadi/diagnosticDataCrash

Be resilient when encountering a location we don't have a document for.
......@@ -406,6 +406,11 @@ public static DiagnosticData Create(Project project, Diagnostic diagnostic)
private static DiagnosticDataLocation CreateLocation(Document document, Location location)
{
if (document == null)
{
return null;
}
TextSpan sourceSpan;
FileLinePositionSpan mappedLineInfo;
FileLinePositionSpan originalLineInfo;
......@@ -432,7 +437,10 @@ public static DiagnosticData Create(Document document, Diagnostic diagnostic)
var additionalLocations = diagnostic.AdditionalLocations.Count == 0
? (IReadOnlyCollection<DiagnosticDataLocation>)SpecializedCollections.EmptyArray<DiagnosticDataLocation>()
: diagnostic.AdditionalLocations.Where(loc => loc.IsInSource).Select(loc => CreateLocation(document.Project.GetDocument(loc.SourceTree), loc)).ToReadOnlyCollection();
: diagnostic.AdditionalLocations.Where(loc => loc.IsInSource)
.Select(loc => CreateLocation(document.Project.GetDocument(loc.SourceTree), loc))
.WhereNotNull()
.ToReadOnlyCollection();
return new DiagnosticData(
diagnostic.Id,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册