IC: add destination dir to start of classpath instead of end

Otherwise IC fails when a project declares a class with the same name
as in one of its dependencies.
The issue is relevant only for non-JPS IC (Gradle, Maven, etc.),
but I added the test for JPS too.

  #KT-20516 fixed
This commit is contained in:
Alexey Tsvetkov
2018-03-21 14:35:57 +03:00
parent 55cbd28910
commit 605bcc66a1
26 changed files with 93 additions and 1 deletions
@@ -314,7 +314,9 @@ class IncrementalJvmCompilerRunner(
override fun preBuildHook(args: K2JVMCompilerArguments, compilationMode: CompilationMode) {
when (compilationMode) {
is CompilationMode.Incremental -> {
args.classpathAsList += args.destinationAsFile.apply { mkdirs() }
val destinationDir = args.destinationAsFile
destinationDir.mkdirs()
args.classpathAsList = listOf(destinationDir) + args.classpathAsList
}
is CompilationMode.Rebuild -> {
// there is no point in updating annotation file since all files will be compiled anyway