internal static new VisualBasicCompilationFactory Create(string assemblyFileName, CompilationOptionsReader optionsReader) { Debug.Assert(optionsReader.GetLanguageName() == LanguageNames.VisualBasic); var compilationOptions = CreateVisualBasicCompilationOptions(assemblyFileName, optionsReader); return(new VisualBasicCompilationFactory(assemblyFileName, optionsReader, compilationOptions)); }
private CSharpCompilationFactory( string assemblyFileName, CompilationOptionsReader optionsReader, CSharpParseOptions parseOptions, CSharpCompilationOptions compilationOptions) : base(assemblyFileName, optionsReader) { Debug.Assert(optionsReader.GetLanguageName() == LanguageNames.CSharp); ParseOptions = parseOptions; CompilationOptions = compilationOptions; }
public Compilation CreateCompilation( string assemblyFileName, CompilationOptionsReader compilationOptionsReader, ImmutableArray <SyntaxTreeInfo> syntaxTreeInfos, ImmutableArray <MetadataReference> metadataReferences) { var diagnosticBag = DiagnosticBag.GetInstance(); var compilation = compilationOptionsReader.GetLanguageName() switch { LanguageNames.CSharp => CreateCSharpCompilation(assemblyFileName, compilationOptionsReader, syntaxTreeInfos, metadataReferences), LanguageNames.VisualBasic => CreateVisualBasicCompilation(assemblyFileName, compilationOptionsReader, syntaxTreeInfos, metadataReferences, diagnosticBag), var language => throw new InvalidDataException($"{assemblyFileName} has unsupported language {language}") }; var diagnostics = diagnosticBag.ToReadOnlyAndFree(); var hadError = false; foreach (var diagnostic in diagnostics) { if (diagnostic.Severity == DiagnosticSeverity.Error) { _logger.LogError(diagnostic.ToString()); hadError = true; } else { _logger.LogWarning(diagnostic.ToString()); } } if (hadError) { throw new Exception("Diagnostics creating the compilation"); } return(compilation); }
internal static new CSharpCompilationFactory Create(string assemblyFileName, CompilationOptionsReader optionsReader) { Debug.Assert(optionsReader.GetLanguageName() == LanguageNames.CSharp); var(compilationOptions, parseOptions) = CreateCSharpCompilationOptions(assemblyFileName, optionsReader); return(new CSharpCompilationFactory(assemblyFileName, optionsReader, parseOptions, compilationOptions)); }
public static CompilationFactory Create(string assemblyFileName, CompilationOptionsReader optionsReader) => optionsReader.GetLanguageName() switch {