// 15.9 BACKCOMPAT OVERLOAD -- DO NOT TOUCH
 public CSharpCompilationOptions(
     OutputKind outputKind,
     bool reportSuppressedDiagnostics,
     string?moduleName,
     string?mainTypeName,
     string?scriptClassName,
     IEnumerable <string>?usings,
     OptimizationLevel optimizationLevel,
     bool checkOverflow,
     bool allowUnsafe,
     string?cryptoKeyContainer,
     string?cryptoKeyFile,
     ImmutableArray <byte> cryptoPublicKey,
     bool?delaySign,
     Platform platform,
     ReportDiagnostic generalDiagnosticOption,
     int warningLevel,
     IEnumerable <KeyValuePair <string, ReportDiagnostic> >?specificDiagnosticOptions,
     bool concurrentBuild,
     bool deterministic,
     XmlReferenceResolver?xmlReferenceResolver,
     SourceReferenceResolver?sourceReferenceResolver,
     MetadataReferenceResolver?metadataReferenceResolver,
     AssemblyIdentityComparer?assemblyIdentityComparer,
     StrongNameProvider?strongNameProvider,
     bool publicSign,
     MetadataImportOptions metadataImportOptions
     )
     : this(
         outputKind,
         reportSuppressedDiagnostics,
         moduleName,
         mainTypeName,
         scriptClassName,
         usings,
         optimizationLevel,
         checkOverflow,
         allowUnsafe,
         cryptoKeyContainer,
         cryptoKeyFile,
         cryptoPublicKey,
         delaySign,
         platform,
         generalDiagnosticOption,
         warningLevel,
         specificDiagnosticOptions,
         concurrentBuild,
         deterministic,
         xmlReferenceResolver,
         sourceReferenceResolver,
         metadataReferenceResolver,
         assemblyIdentityComparer,
         strongNameProvider,
         publicSign,
         metadataImportOptions,
         nullableContextOptions : NullableContextOptions.Disable
         )
 {
 }
Exemple #2
0
        public new CSharpCompilationOptions WithAssemblyIdentityComparer(AssemblyIdentityComparer?comparer)
        {
            comparer = comparer ?? AssemblyIdentityComparer.Default;

            if (ReferenceEquals(comparer, this.AssemblyIdentityComparer))
            {
                return(this);
            }

            return(new CSharpCompilationOptions(this)
            {
                AssemblyIdentityComparer = comparer
            });
        }
Exemple #3
0
 public CSharpCompilationOptions(
     OutputKind outputKind,
     bool reportSuppressedDiagnostics = false,
     string?moduleName                   = null,
     string?mainTypeName                 = null,
     string?scriptClassName              = null,
     IEnumerable <string>?usings         = null,
     OptimizationLevel optimizationLevel = OptimizationLevel.Debug,
     bool checkOverflow                  = false,
     bool allowUnsafe                      = false,
     string?cryptoKeyContainer             = null,
     string?cryptoKeyFile                  = null,
     ImmutableArray <byte> cryptoPublicKey = default,
     bool?delaySign    = null,
     Platform platform = Platform.AnyCpu,
     ReportDiagnostic generalDiagnosticOption = ReportDiagnostic.Default,
     int warningLevel = 4,
     IEnumerable <KeyValuePair <string, ReportDiagnostic> >?specificDiagnosticOptions = null,
     bool concurrentBuild = true,
     bool deterministic   = false,
     XmlReferenceResolver?xmlReferenceResolver           = null,
     SourceReferenceResolver?sourceReferenceResolver     = null,
     MetadataReferenceResolver?metadataReferenceResolver = null,
     AssemblyIdentityComparer?assemblyIdentityComparer   = null,
     StrongNameProvider?strongNameProvider = null,
     bool publicSign = false,
     MetadataImportOptions metadataImportOptions   = MetadataImportOptions.Public,
     NullableContextOptions nullableContextOptions = NullableContextOptions.Disable,
     decimal warningVersion = 0m)
     : this(outputKind, reportSuppressedDiagnostics, moduleName, mainTypeName, scriptClassName,
            usings, optimizationLevel, checkOverflow, allowUnsafe,
            cryptoKeyContainer, cryptoKeyFile, cryptoPublicKey, delaySign, platform,
            generalDiagnosticOption, warningLevel,
            specificDiagnosticOptions, concurrentBuild, deterministic,
            currentLocalTime : default,
            debugPlusMode : false,
            xmlReferenceResolver : xmlReferenceResolver,
            sourceReferenceResolver : sourceReferenceResolver,
            metadataReferenceResolver : metadataReferenceResolver,
            assemblyIdentityComparer : assemblyIdentityComparer,
            strongNameProvider : strongNameProvider,
            metadataImportOptions : metadataImportOptions,
            referencesSupersedeLowerVersions : false,
            publicSign : publicSign,
            topLevelBinderFlags : BinderFlags.None,
            nullableContextOptions : nullableContextOptions,
            warningVersion : warningVersion)
 {
 }
Exemple #4
0
 internal CSharpCompilationOptions(
     OutputKind outputKind,
     bool reportSuppressedDiagnostics,
     string?moduleName,
     string?mainTypeName,
     string?scriptClassName,
     IEnumerable <string>?usings,
     OptimizationLevel optimizationLevel,
     bool checkOverflow,
     bool allowUnsafe,
     string?cryptoKeyContainer,
     string?cryptoKeyFile,
     ImmutableArray <byte> cryptoPublicKey,
     bool?delaySign,
     Platform platform,
     ReportDiagnostic generalDiagnosticOption,
     int warningLevel,
     IEnumerable <KeyValuePair <string, ReportDiagnostic> >?specificDiagnosticOptions,
     bool concurrentBuild,
     bool deterministic,
     DateTime currentLocalTime,
     bool debugPlusMode,
     XmlReferenceResolver?xmlReferenceResolver,
     SourceReferenceResolver?sourceReferenceResolver,
     MetadataReferenceResolver?metadataReferenceResolver,
     AssemblyIdentityComparer?assemblyIdentityComparer,
     StrongNameProvider?strongNameProvider,
     MetadataImportOptions metadataImportOptions,
     bool referencesSupersedeLowerVersions,
     bool publicSign,
     BinderFlags topLevelBinderFlags,
     NullableContextOptions nullableContextOptions,
     decimal warningVersion = 0m)
     : base(outputKind, reportSuppressedDiagnostics, moduleName, mainTypeName, scriptClassName,
            cryptoKeyContainer, cryptoKeyFile, cryptoPublicKey, delaySign, publicSign, optimizationLevel, checkOverflow,
            platform, generalDiagnosticOption, warningLevel, specificDiagnosticOptions.ToImmutableDictionaryOrEmpty(),
            concurrentBuild, deterministic, currentLocalTime, debugPlusMode, xmlReferenceResolver,
            sourceReferenceResolver, metadataReferenceResolver, assemblyIdentityComparer,
            strongNameProvider, metadataImportOptions, referencesSupersedeLowerVersions)
 {
     this.Usings                 = usings.AsImmutableOrEmpty();
     this.AllowUnsafe            = allowUnsafe;
     this.TopLevelBinderFlags    = topLevelBinderFlags;
     this.NullableContextOptions = nullableContextOptions;
     this.WarningVersion         = warningVersion;
 }
Exemple #5
0
 public CSharpCompilationOptions(
     OutputKind outputKind,
     bool reportSuppressedDiagnostics,
     string?moduleName,
     string?mainTypeName,
     string?scriptClassName,
     IEnumerable <string>?usings,
     OptimizationLevel optimizationLevel,
     bool checkOverflow,
     bool allowUnsafe,
     string?cryptoKeyContainer,
     string?cryptoKeyFile,
     ImmutableArray <byte> cryptoPublicKey,
     bool?delaySign,
     Platform platform,
     ReportDiagnostic generalDiagnosticOption,
     int warningLevel,
     IEnumerable <KeyValuePair <string, ReportDiagnostic> >?specificDiagnosticOptions,
     bool concurrentBuild,
     bool deterministic,
     XmlReferenceResolver?xmlReferenceResolver,
     SourceReferenceResolver?sourceReferenceResolver,
     MetadataReferenceResolver?metadataReferenceResolver,
     AssemblyIdentityComparer?assemblyIdentityComparer,
     StrongNameProvider?strongNameProvider)
     : this(outputKind, false, moduleName, mainTypeName, scriptClassName, usings, optimizationLevel,
            checkOverflow, allowUnsafe, cryptoKeyContainer, cryptoKeyFile, cryptoPublicKey,
            delaySign, platform, generalDiagnosticOption, warningLevel,
            specificDiagnosticOptions, concurrentBuild,
            deterministic : deterministic,
            currentLocalTime : default,
            debugPlusMode : false,
            xmlReferenceResolver : xmlReferenceResolver,
            sourceReferenceResolver : sourceReferenceResolver,
            syntaxTreeOptionsProvider : null,
            metadataReferenceResolver : metadataReferenceResolver,
            assemblyIdentityComparer : assemblyIdentityComparer,
            strongNameProvider : strongNameProvider,
            metadataImportOptions : MetadataImportOptions.Public,
            referencesSupersedeLowerVersions : false,
            publicSign : false,
            topLevelBinderFlags : BinderFlags.None,
            nullableContextOptions : NullableContextOptions.Disable)
 {
 }
Exemple #6
0
 protected abstract CompilationOptions CommonWithAssemblyIdentityComparer(
     AssemblyIdentityComparer?comparer
     );
Exemple #7
0
        // Expects correct arguments.
        internal CompilationOptions(
            OutputKind outputKind,
            bool reportSuppressedDiagnostics,
            string?moduleName,
            string?mainTypeName,
            string?scriptClassName,
            string?cryptoKeyContainer,
            string?cryptoKeyFile,
            ImmutableArray <byte> cryptoPublicKey,
            bool?delaySign,
            bool publicSign,
            OptimizationLevel optimizationLevel,
            bool checkOverflow,
            Platform platform,
            ReportDiagnostic generalDiagnosticOption,
            int warningLevel,
            ImmutableDictionary <string, ReportDiagnostic> specificDiagnosticOptions,
            bool concurrentBuild,
            bool deterministic,
            DateTime currentLocalTime,
            bool debugPlusMode,
            XmlReferenceResolver?xmlReferenceResolver,
            SourceReferenceResolver?sourceReferenceResolver,
            SyntaxTreeOptionsProvider?syntaxTreeOptionsProvider,
            MetadataReferenceResolver?metadataReferenceResolver,
            AssemblyIdentityComparer?assemblyIdentityComparer,
            StrongNameProvider?strongNameProvider,
            MetadataImportOptions metadataImportOptions,
            bool referencesSupersedeLowerVersions
            )
        {
            this.OutputKind                  = outputKind;
            this.ModuleName                  = moduleName;
            this.MainTypeName                = mainTypeName;
            this.ScriptClassName             = scriptClassName ?? WellKnownMemberNames.DefaultScriptClassName;
            this.CryptoKeyContainer          = cryptoKeyContainer;
            this.CryptoKeyFile               = string.IsNullOrEmpty(cryptoKeyFile) ? null : cryptoKeyFile;
            this.CryptoPublicKey             = cryptoPublicKey.NullToEmpty();
            this.DelaySign                   = delaySign;
            this.CheckOverflow               = checkOverflow;
            this.Platform                    = platform;
            this.GeneralDiagnosticOption     = generalDiagnosticOption;
            this.WarningLevel                = warningLevel;
            this.SpecificDiagnosticOptions   = specificDiagnosticOptions;
            this.ReportSuppressedDiagnostics = reportSuppressedDiagnostics;
            this.OptimizationLevel           = optimizationLevel;
            this.ConcurrentBuild             = concurrentBuild;
            this.Deterministic               = deterministic;
            this.CurrentLocalTime            = currentLocalTime;
            this.DebugPlusMode               = debugPlusMode;
            this.XmlReferenceResolver        = xmlReferenceResolver;
            this.SourceReferenceResolver     = sourceReferenceResolver;
            this.SyntaxTreeOptionsProvider   = syntaxTreeOptionsProvider;
            this.MetadataReferenceResolver   = metadataReferenceResolver;
            this.StrongNameProvider          = strongNameProvider;
            this.AssemblyIdentityComparer    =
                assemblyIdentityComparer ?? AssemblyIdentityComparer.Default;
            this.MetadataImportOptions            = metadataImportOptions;
            this.ReferencesSupersedeLowerVersions = referencesSupersedeLowerVersions;
            this.PublicSign = publicSign;

            _lazyErrors = new Lazy <ImmutableArray <Diagnostic> >(
                () =>
            {
                var builder = ArrayBuilder <Diagnostic> .GetInstance();
                ValidateOptions(builder);
                return(builder.ToImmutableAndFree());
            }
                );
        }
Exemple #8
0
 protected override CompilationOptions CommonWithAssemblyIdentityComparer(AssemblyIdentityComparer?comparer) =>
 WithAssemblyIdentityComparer(comparer);