public void AddCompileUnit(
            CompileOutputMode mode, 
            FileInfo outputFileInfo, 
            IEnumerable<ParsedSourceFile> sources)
        {
            if (Context.CompileUnits.Any(u => (u.Mode == CompileOutputMode.Library || u.Mode == CompileOutputMode.Executable) &&  u.OutputFileInfo == outputFileInfo))
                throw new InternalException(string.Format(ErrorMessages.E_0008_Compiler_DuplicateOutputFileInfo, outputFileInfo.FullName));

            var unit = new CompilationUnit
            {
                Mode = mode,
                OutputFileInfo = outputFileInfo,
                SourceFiles = sources.ToList(),
            };

            Context.CompileUnits.Add(unit);
        }
        public void AddCompileUnit(
            CompileOutputMode mode,
            FileInfo outputFileInfo,
            IEnumerable <ParsedSourceFile> sources)
        {
            if (Context.CompileUnits.Any(u => (u.Mode == CompileOutputMode.Library || u.Mode == CompileOutputMode.Executable) && u.OutputFileInfo == outputFileInfo))
            {
                throw new InternalException(string.Format(ErrorMessages.E_0008_Compiler_DuplicateOutputFileInfo, outputFileInfo.FullName));
            }

            var unit = new CompilationUnit
            {
                Mode           = mode,
                OutputFileInfo = outputFileInfo,
                SourceFiles    = sources.ToList(),
            };

            Context.CompileUnits.Add(unit);
        }