提交 8c7ae411 编写于 作者: H Heejae Chang 提交者: GitHub

Merge pull request #15566 from heejaechang/optionmissing

add options back to diagnostics
......@@ -58,6 +58,11 @@ public async Task<Solution> GetSolutionAsync(Checksum solutionChecksum, Cancella
public async Task<Solution> GetSolutionAsync(Checksum solutionChecksum, OptionSet optionSet, CancellationToken cancellationToken)
{
if (optionSet == null)
{
return await GetSolutionAsync(solutionChecksum, cancellationToken).ConfigureAwait(false);
}
// since option belong to workspace, we can't share solution
// create new solution
......
......@@ -33,7 +33,7 @@ public async Task CalculateDiagnosticsAsync(DiagnosticArguments arguments, byte[
var optionSet = await RoslynServices.AssetService.GetAssetAsync<OptionSet>(arguments.GetOptionSetChecksum(), CancellationToken).ConfigureAwait(false);
// entry point for diagnostic service
var solution = await GetSolutionAsync().ConfigureAwait(false);
var solution = await GetSolutionWithSpecificOptionsAsync(optionSet).ConfigureAwait(false);
var projectId = arguments.GetProjectId();
var analyzers = await GetHostAnalyzerReferences(arguments.GetHostAnalyzerChecksums()).ConfigureAwait(false);
......
......@@ -5,6 +5,7 @@
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Options;
using Roslyn.Utilities;
using StreamJsonRpc;
......@@ -66,6 +67,12 @@ protected Task<Solution> GetSolutionAsync()
return RoslynServices.SolutionService.GetSolutionAsync(_solutionChecksumOpt, CancellationToken);
}
protected Task<Solution> GetSolutionWithSpecificOptionsAsync(OptionSet options)
{
Contract.ThrowIfNull(_solutionChecksumOpt);
return RoslynServices.SolutionService.GetSolutionAsync(_solutionChecksumOpt, options, CancellationToken);
}
protected virtual void Dispose(bool disposing)
{
// do nothing here
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册