提交 b7d860ed 编写于 作者: H HeeJae Chang 提交者: Sam Harwell

Add DiagnosticAnalysisResult.CreateEmpty and use where appropriate

上级 6bdc7b1e
......@@ -77,7 +77,7 @@ public async Task<DiagnosticAnalysisResult> GetAnalysisDataAsync(Project project
// if given project doesnt have any diagnostics, return empty.
if (lastResult.IsEmpty)
{
return new DiagnosticAnalysisResult(lastResult.ProjectId, lastResult.Version);
return DiagnosticAnalysisResult.CreateEmpty(lastResult.ProjectId, lastResult.Version);
}
// loading data can be cancelled any time.
......@@ -136,7 +136,7 @@ public async Task<DiagnosticAnalysisResult> GetAnalysisDataAsync(Document docume
// if given document doesnt have any diagnostics, return empty.
if (IsEmpty(lastResult, document.Id))
{
return new DiagnosticAnalysisResult(lastResult.ProjectId, lastResult.Version);
return DiagnosticAnalysisResult.CreateEmpty(lastResult.ProjectId, lastResult.Version);
}
// loading data can be cancelled any time.
......@@ -177,7 +177,7 @@ public async Task<DiagnosticAnalysisResult> GetProjectAnalysisDataAsync(Project
// if given document doesnt have any diagnostics, return empty.
if (lastResult.IsEmpty)
{
return new DiagnosticAnalysisResult(lastResult.ProjectId, lastResult.Version);
return DiagnosticAnalysisResult.CreateEmpty(lastResult.ProjectId, lastResult.Version);
}
// loading data can be cancelled any time.
......@@ -314,7 +314,7 @@ private async Task<DiagnosticAnalysisResult> LoadInitialAnalysisDataAsync(Projec
if (!await TryDeserializeAsync(serializer, project, project.Id, _owner.NonLocalStateName, s_addOthers, builder, cancellationToken).ConfigureAwait(false))
{
return new DiagnosticAnalysisResult(project.Id, VersionStamp.Default, ImmutableHashSet<DocumentId>.Empty, isEmpty: true, fromBuild: false);
return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default);
}
return builder.ToResult();
......@@ -331,7 +331,7 @@ private async Task<DiagnosticAnalysisResult> LoadInitialAnalysisDataAsync(Docume
if (!await TryDeserializeDocumentAsync(serializer, document, builder, cancellationToken).ConfigureAwait(false))
{
return new DiagnosticAnalysisResult(project.Id, VersionStamp.Default, ImmutableHashSet<DocumentId>.Empty, isEmpty: true, fromBuild: false);
return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default);
}
return builder.ToResult();
......@@ -346,7 +346,7 @@ private async Task<DiagnosticAnalysisResult> LoadInitialProjectAnalysisDataAsync
if (!await TryDeserializeAsync(serializer, project, project.Id, _owner.NonLocalStateName, s_addOthers, builder, cancellationToken).ConfigureAwait(false))
{
return new DiagnosticAnalysisResult(project.Id, VersionStamp.Default, ImmutableHashSet<DocumentId>.Empty, isEmpty: true, fromBuild: false);
return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default);
}
return builder.ToResult();
......
......@@ -239,7 +239,7 @@ private static DiagnosticAnalysisResult GetResultOrEmpty(ImmutableDictionary<Dia
return result;
}
return new DiagnosticAnalysisResult(projectId, version);
return DiagnosticAnalysisResult.CreateEmpty(projectId, version);
}
private static ImmutableArray<DiagnosticData> GetResult(DiagnosticAnalysisResult result, AnalysisKind kind, DocumentId id)
......
......@@ -30,17 +30,6 @@ internal struct DiagnosticAnalysisResult
private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> _nonLocals;
private readonly ImmutableArray<DiagnosticData> _others;
public DiagnosticAnalysisResult(ProjectId projectId, VersionStamp version) : this(
projectId, version,
documentIds: ImmutableHashSet<DocumentId>.Empty,
syntaxLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
others: ImmutableArray<DiagnosticData>.Empty,
fromBuild: false)
{
}
public DiagnosticAnalysisResult(
ProjectId projectId, VersionStamp version, ImmutableHashSet<DocumentId> documentIds, bool isEmpty, bool fromBuild)
{
......@@ -89,6 +78,19 @@ internal struct DiagnosticAnalysisResult
{
}
public static DiagnosticAnalysisResult CreateEmpty(ProjectId projectId, VersionStamp version)
{
return new DiagnosticAnalysisResult(
projectId,
version,
documentIds: ImmutableHashSet<DocumentId>.Empty,
syntaxLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
others: ImmutableArray<DiagnosticData>.Empty,
fromBuild: false);
}
// aggregated form means it has aggregated information but no actual data.
public bool IsAggregatedForm => _syntaxLocals == null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册