//^ [NotDelayed]
 public CompilerOptions(CompilerOptions source) {
   if (source == null) { Debug.Assert(false); return; }
   this.AdditionalSearchPaths = source.AdditionalSearchPaths; //REVIEW: clone the list?
   this.AliasesForReferencedAssemblies = source.AliasesForReferencedAssemblies;
   this.AllowUnsafeCode = source.AllowUnsafeCode;
   this.AssemblyKeyFile = source.AssemblyKeyFile;
   this.AssemblyKeyName = source.AssemblyKeyName;
   this.BaseAddress = source.BaseAddress;
   this.BugReportFileName = source.BugReportFileName;
   this.CheckedArithmetic = source.CheckedArithmetic;
   this.CodePage = source.CodePage;
   this.CompileAndExecute = source.CompileAndExecute;
   this.CompilerOptions = source.CompilerOptions;
   this.DefinedPreProcessorSymbols = source.DefinedPreProcessorSymbols;
   this.DelaySign = source.DelaySign;
   this.DisplayCommandLineHelp = source.DisplayCommandLineHelp;
   if (source.EmbeddedResources != null)
     foreach (string s in source.EmbeddedResources) this.EmbeddedResources.Add(s);
   this.EmitManifest = source.EmitManifest;
   this.EncodeOutputInUTF8 = source.EncodeOutputInUTF8;
   this.Evidence = source.Evidence;
   this.ExplicitOutputExtension = source.ExplicitOutputExtension;
   this.FileAlignment = source.FileAlignment;
   this.FullyQualifyPaths = source.FullyQualifyPaths;
   this.GenerateExecutable = source.GenerateExecutable;
   this.GenerateInMemory = source.GenerateInMemory;
   this.HeuristicReferenceResolution = source.HeuristicReferenceResolution;
   this.IncludeDebugInformation = source.IncludeDebugInformation;
   this.IncrementalCompile = source.IncrementalCompile;
   if (source.LinkedResources != null)
     foreach (string s in source.LinkedResources) this.LinkedResources.Add(s);
   this.MainClass = source.MainClass;
   this.MayLockFiles = source.MayLockFiles;
   //this.ModuleKind = source.ModuleKind;
   this.NoStandardLibrary = source.NoStandardLibrary;
   this.Optimize = source.Optimize;
   this.OutputAssembly = source.OutputAssembly;
   this.OutputPath = source.OutputPath;
   this.PDBOnly = source.PDBOnly;
   this.RecursiveWildcard = source.RecursiveWildcard;
   if (source.ReferencedAssemblies != null)
     foreach (string s in source.ReferencedAssemblies) this.ReferencedAssemblies.Add(s);
   this.ReferencedModules = source.ReferencedModules;
   this.RootNamespace = source.RootNamespace;
   this.ShadowedAssembly = source.ShadowedAssembly;
   this.SpecificWarningsToTreatAsErrors = source.SpecificWarningsToTreatAsErrors;
   this.StandardLibraryLocation = source.StandardLibraryLocation;
   this.SuppressLogo = source.SuppressLogo;
   this.SuppressedWarnings = source.SuppressedWarnings;
   this.TargetAppDomain = source.TargetAppDomain;
   //this.TargetInformation = source.TargetInformation;
   this.TargetPlatform = source.TargetPlatform;
   this.TargetPlatformLocation = source.TargetPlatformLocation;
   this.TreatWarningsAsErrors = source.TreatWarningsAsErrors;
   this.UserLocaleId = source.UserLocaleId;
   this.UserToken = source.UserToken;
   this.WarningLevel = source.WarningLevel;
   this.Win32Icon = source.Win32Icon;
   this.Win32Resource = source.Win32Resource;
   this.XMLDocFileName = source.XMLDocFileName;
 }
 //^ [NotDelayed]
 public SmallBasicCompilerOptions(CompilerOptions options)
   : base(options) {
   SmallBasicCompilerOptions/*?*/ coptions = options as SmallBasicCompilerOptions;
   if (coptions == null) return;
   this.Compatibility = coptions.Compatibility;
   this.ReferenceTypesAreNonNullByDefault = coptions.ReferenceTypesAreNonNullByDefault;
   this.RunProgramVerifier = coptions.RunProgramVerifier;
   this.RunProgramVerifierWhileEditing = coptions.RunProgramVerifierWhileEditing;
   this.ProgramVerifierCommandLineOptions = coptions.ProgramVerifierCommandLineOptions;
 }