Example #1
0
        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));
        }
Example #2
0
 private CSharpCompilationFactory(
     string assemblyFileName,
     CompilationOptionsReader optionsReader,
     CSharpParseOptions parseOptions,
     CSharpCompilationOptions compilationOptions)
     : base(assemblyFileName, optionsReader)
 {
     Debug.Assert(optionsReader.GetLanguageName() == LanguageNames.CSharp);
     ParseOptions       = parseOptions;
     CompilationOptions = compilationOptions;
 }
Example #3
0
        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);
        }
Example #4
0
 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));
 }
Example #5
0
 public static CompilationFactory Create(string assemblyFileName, CompilationOptionsReader optionsReader)
 => optionsReader.GetLanguageName() switch
 {