Skip to content

Commit c31ff2d

Browse files
committed
Skipping analyzers when compiling in release mode
1 parent f41da7b commit c31ff2d

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/WebJobs.Script/Description/DotNet/Compilation/CSharp/CSharpCompilation.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,18 @@ public async Task<Assembly> EmitAsync(CancellationToken cancellationToken)
100100
using (var assemblyStream = new MemoryStream())
101101
using (var pdbStream = new MemoryStream())
102102
{
103-
var compilationWithAnalyzers = _compilation.WithAnalyzers(GetAnalyzers());
104-
var diagnostics = await compilationWithAnalyzers.GetAnalyzerDiagnosticsAsync();
103+
Compilation compilation = _compilation;
104+
var diagnostics = ImmutableArray<Diagnostic>.Empty;
105+
106+
if (compilation.Options.OptimizationLevel == OptimizationLevel.Debug)
107+
{
108+
var compilationWithAnalyzers = compilation.WithAnalyzers(GetAnalyzers());
109+
diagnostics = await compilationWithAnalyzers.GetAnalyzerDiagnosticsAsync();
110+
compilation = compilationWithAnalyzers.Compilation;
111+
}
112+
105113
var emitOptions = new EmitOptions().WithDebugInformationFormat(PlatformHelper.IsMono ? DebugInformationFormat.PortablePdb : DebugInformationFormat.Pdb);
106-
var emitResult = compilationWithAnalyzers.Compilation.Emit(assemblyStream, pdbStream, options: emitOptions, cancellationToken: cancellationToken);
114+
var emitResult = compilation.Emit(assemblyStream, pdbStream, options: emitOptions, cancellationToken: cancellationToken);
107115

108116
diagnostics = diagnostics.AddRange(emitResult.Diagnostics);
109117

0 commit comments

Comments
 (0)