diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java index 4b4e9cb80cf..e2aeffd744e 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java @@ -251,10 +251,19 @@ public class CompileEnvironmentUtil { }; } - public static void writeToOutputWithDirector(ClassFileFactory factory, @NotNull OutputDirector outputDirector) { + public static void writeToOutputWithDirector( + ClassFileFactory factory, + @NotNull OutputDirector outputDirector, + @NotNull MessageCollector messageCollector + ) { List files = factory.files(); for (String file : files) { - File target = new File(outputDirector.getOutputDirectory(factory.getSourceFiles(file)), file); + List sourceFiles = factory.getSourceFiles(file); + File target = new File(outputDirector.getOutputDirectory(sourceFiles), file); + messageCollector.report( + CompilerMessageSeverity.OUTPUT, + OutputMessageUtil.formatOutputMessage(sourceFiles, target), + CompilerMessageLocation.NO_LOCATION); try { FileUtil.writeToFile(target, factory.asBytes(file)); } @@ -265,7 +274,7 @@ public class CompileEnvironmentUtil { } public static void writeToOutputDirectory(ClassFileFactory factory, @NotNull File outputDir) { - writeToOutputWithDirector(factory, singleDirectory(outputDir)); + writeToOutputWithDirector(factory, singleDirectory(outputDir), MessageCollector.NONE); } // Used for debug output only @@ -292,25 +301,13 @@ public class CompileEnvironmentUtil { writeToJar(jar, includeRuntime, mainClass, factory); } else if (outputDir != null) { - reportOutputs(factory, messageCollector); - writeToOutputWithDirector(factory, outputDir); + writeToOutputWithDirector(factory, outputDir, messageCollector); } else { throw new CompileEnvironmentException("Output directory or jar file is not specified - no files will be saved to the disk"); } } - private static void reportOutputs(ClassFileFactory factory, MessageCollector messageCollector) { - for (String outputFile : factory.files()) { - List sourceFiles = factory.getSourceFiles(outputFile); - messageCollector.report( - CompilerMessageSeverity.OUTPUT, - OutputMessageUtil.formatOutputMessage(sourceFiles, new File(outputFile)), - CompilerMessageLocation.NO_LOCATION); - - } - } - private static class DescriptionToModuleAdapter implements Module { private final ModuleDescription description; diff --git a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/OutputItemsCollectorImpl.java b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/OutputItemsCollectorImpl.java index 1f53b38f25e..32d86c95816 100644 --- a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/OutputItemsCollectorImpl.java +++ b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/OutputItemsCollectorImpl.java @@ -18,7 +18,6 @@ package org.jetbrains.jet.compiler.runner; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.io.File; import java.util.Collection; @@ -26,16 +25,10 @@ import java.util.List; public class OutputItemsCollectorImpl implements OutputItemsCollector { private final List outputs = ContainerUtil.newArrayList(); - @Nullable - private final File outputDir; - - public OutputItemsCollectorImpl(@Nullable File outputDir) { - this.outputDir = outputDir; - } @Override public void add(Collection sourceFiles, File outputFile) { - outputs.add(new SimpleOutputItem(sourceFiles, new File(outputDir, outputFile.getPath()))); + outputs.add(new SimpleOutputItem(sourceFiles, outputFile)); } @NotNull diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java index 77bff7330cd..6a1898f88a1 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java @@ -116,7 +116,7 @@ public class JetCompiler implements TranslatingCompiler { if (scriptFile == null) return; - OutputItemsCollectorImpl collector = new OutputItemsCollectorImpl(outputDir) { + OutputItemsCollectorImpl collector = new OutputItemsCollectorImpl() { @Override public void add(Collection sourceFiles, File outputFile) { super.add(sourceFiles, outputFile); diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java b/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java index dae810ab0b7..c40aac9a473 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java @@ -90,7 +90,7 @@ public final class K2JSCompiler implements TranslatingCompiler { private static void doCompile(@NotNull final MessageCollector messageCollector, @NotNull OutputSink sink, @NotNull final Module module, @NotNull final CompilerEnvironment environment) { - OutputItemsCollectorImpl collector = new OutputItemsCollectorImpl(environment.getOutput()); + OutputItemsCollectorImpl collector = new OutputItemsCollectorImpl(); outputCompilerMessagesAndHandleExitCode(messageCollector, collector, new Function() { @Override public Integer fun(PrintStream stream) { diff --git a/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilder.java b/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilder.java index 82f42320026..7b72857b7c6 100644 --- a/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilder.java +++ b/jps-plugin/src/org/jetbrains/jet/jps/build/KotlinBuilder.java @@ -115,7 +115,7 @@ public class KotlinBuilder extends ModuleLevelBuilder { assert outputDir != null : "CompilerEnvironment must have checked for outputDir to be not null, but it didn't"; - OutputItemsCollectorImpl outputItemCollector = new OutputItemsCollectorImpl(outputDir); + OutputItemsCollectorImpl outputItemCollector = new OutputItemsCollectorImpl(); JpsProject project = representativeTarget.getModule().getProject(); CommonCompilerArguments commonSettings = JpsKotlinCompilerSettings.getCommonSettings(project);