From 16c5504638ad1fca83c6507b6290c526e61c9e3a Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 20 Jan 2010 13:56:31 +0300 Subject: [PATCH] make: when collecting files to be deleted, if corresponding src file exists and not selected for recompilation, leave the output file untouched --- .../com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java b/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java index aebb7357ad..aa41f559d2 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/TranslatingCompilerFilesMonitor.java @@ -165,6 +165,7 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { final int projectId = getProjectId(project); final CompilerConfiguration configuration = CompilerConfiguration.getInstance(project); final boolean _forceCompile = forceCompile || isRebuild; + final Set selectedForRecompilation = new HashSet(); synchronized (mySourcesToRecompile) { final TIntHashSet pathsToRecompile = mySourcesToRecompile.get(projectId); if (_forceCompile || pathsToRecompile != null && !pathsToRecompile.isEmpty()) { @@ -177,6 +178,7 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { if (_forceCompile) { if (compiler.isCompilableFile(file, context) && !configuration.isExcludedFromCompilation(file)) { toCompile.add(file); + selectedForRecompilation.add(file); if (pathsToRecompile == null || !pathsToRecompile.contains(fileId)) { addSourceForRecompilation(projectId, file, null); } @@ -185,6 +187,7 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { else if (pathsToRecompile.contains(fileId)) { if (compiler.isCompilableFile(file, context) && !configuration.isExcludedFromCompilation(file)) { toCompile.add(file); + selectedForRecompilation.add(file); } } } @@ -192,7 +195,6 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { } // it is important that files to delete are collected after the files to compile (see what happens if forceCompile == true) if (!isRebuild) { - final CompileScope compileScope = context.getCompileScope(); synchronized (myOutputsToDelete) { final Map outputsToDelete = myOutputsToDelete.get(projectId); if (outputsToDelete != null) { @@ -208,7 +210,7 @@ public class TranslatingCompilerFilesMonitor implements ApplicationComponent { if (!compiler.isCompilableFile(srcFile, context)) { continue; // do not collect files that were compiled by another compiler } - if (!compileScope.belongs(sourceUrl) && ((CompileContextEx)context).isInSourceContent(srcFile)) { + if (!selectedForRecompilation.contains(srcFile)) { continue; } } -- 2.11.4.GIT