private IncludeState CreateIncludeState(string bundleFileDirectory, Include include) { var includeFileFullPath = new FileInfo(EnsureFileRooted(bundleFileDirectory, include.File)); var outputFile = new FileInfo(EnsureFileRooted(bundleFileDirectory, include.GetOutputFile())); return(new IncludeState() { File = includeFileFullPath, Include = include, Imports = Include.GetImportFiles(includeFileFullPath.FullName) .Select(s => EnsureFileRooted(includeFileFullPath.Directory.FullName, s)) .Distinct(StringComparer.InvariantCultureIgnoreCase) .ToList(), OutputFile = outputFile, // IF the include and output files are the same // THEN the output is already transformed Transformed = (includeFileFullPath == outputFile), }); }