public async Task <bool> TryCompileToStreamAsync(MemoryStream assemblyStream, MemoryStream symbolStream, IWorkSession session, IList <Diagnostic> diagnostics, CancellationToken cancellationToken) { if (session.IsFSharp()) { return(await TryCompileFSharpToStreamAsync(assemblyStream, session, diagnostics, cancellationToken)); } if (session.IsPhp()) { return(TryCompilePhpToStreamAsync(assemblyStream, symbolStream, session, diagnostics)); } var compilation = await session.Roslyn.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(false); var emitResult = compilation.Emit(assemblyStream, pdbStream: symbolStream); if (!emitResult.Success) { foreach (var diagnostic in emitResult.Diagnostics) { diagnostics.Add(diagnostic); } return(false); } return(true); }