Fix JPS tests after JPS module moved to Kotlin repo
Fix testdata of new compiler tests for JPS, as it is build-log-sensitive:
ClassHierarchyAffected.testWithIntermediateBodiesChanged
PureKotlin.testSerializedSubClassAndChangedInterfaces
WithJava.JavaUsedInKotlin.testRawErrorTypeDuringSerialization
Mute JavaUsedInKotlin.SamConversions tests, as it was fixed in 212 idea
Add missed part of commit 5f4be072 [JPS] Fix JS incremental compilation
Part of commit, located in JPS module, was missed during JPS relocation
Fix test MixedInheritance for non-JPS builds
Depends on commit [CHERRY PICKED FROM IJ] [testdata] Replace test IncrementalJvmJpsTest...
This commit is contained in:
committed by
Space
parent
411a0ecc38
commit
44d796e850
@@ -432,6 +432,8 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
|||||||
kotlinDirtyFilesHolder.allRemovedFilesFiles
|
kotlinDirtyFilesHolder.allRemovedFilesFiles
|
||||||
)
|
)
|
||||||
|
|
||||||
|
cleanJsOutputs(context, kotlinChunk, incrementalCaches, kotlinDirtyFilesHolder)
|
||||||
|
|
||||||
if (LOG.isDebugEnabled) {
|
if (LOG.isDebugEnabled) {
|
||||||
LOG.debug("Compiling files: ${kotlinDirtyFilesHolder.allDirtyFiles}")
|
LOG.debug("Compiling files: ${kotlinDirtyFilesHolder.allDirtyFiles}")
|
||||||
}
|
}
|
||||||
@@ -532,6 +534,43 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
|||||||
return OK
|
return OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun cleanJsOutputs(
|
||||||
|
context: CompileContext,
|
||||||
|
kotlinChunk: KotlinChunk,
|
||||||
|
incrementalCaches: Map<KotlinModuleBuildTarget<*>, JpsIncrementalCache>,
|
||||||
|
kotlinDirtyFilesHolder: KotlinDirtySourceFilesHolder
|
||||||
|
) {
|
||||||
|
for (target in kotlinChunk.targets) {
|
||||||
|
val cache = incrementalCaches[target] ?: continue
|
||||||
|
|
||||||
|
if (cache is IncrementalJsCache) {
|
||||||
|
val filesToDelete = mutableListOf<File>()
|
||||||
|
val dirtyFiles = kotlinDirtyFilesHolder.getDirtyFiles(target.jpsModuleBuildTarget).keys
|
||||||
|
val removedFiles = kotlinDirtyFilesHolder.getRemovedFiles(target.jpsModuleBuildTarget)
|
||||||
|
|
||||||
|
for (file: File in dirtyFiles + removedFiles) {
|
||||||
|
filesToDelete.addAll(cache.getOutputsBySource(file).filter { it !in filesToDelete })
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filesToDelete.isNotEmpty()) {
|
||||||
|
val deletedForThisSource = mutableSetOf<String>()
|
||||||
|
val parentDirs = mutableSetOf<File>()
|
||||||
|
|
||||||
|
for (kjsmFile in filesToDelete) {
|
||||||
|
BuildOperations.deleteRecursively(kjsmFile.path, deletedForThisSource, parentDirs)
|
||||||
|
}
|
||||||
|
|
||||||
|
FSOperations.pruneEmptyDirs(context, parentDirs)
|
||||||
|
|
||||||
|
val logger = context.loggingManager.projectBuilderLogger
|
||||||
|
if (logger.isEnabled && deletedForThisSource.isNotEmpty()) {
|
||||||
|
logger.logDeletedFiles(deletedForThisSource)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// todo(1.2.80): got rid of ModuleChunk (replace with KotlinChunk)
|
// todo(1.2.80): got rid of ModuleChunk (replace with KotlinChunk)
|
||||||
// todo(1.2.80): introduce KotlinRoundCompileContext, move dirtyFilesHolder, fsOperations, environment to it
|
// todo(1.2.80): introduce KotlinRoundCompileContext, move dirtyFilesHolder, fsOperations, environment to it
|
||||||
private fun doCompileModuleChunk(
|
private fun doCompileModuleChunk(
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.jps.targets
|
|||||||
|
|
||||||
import org.jetbrains.jps.builders.storage.BuildDataPaths
|
import org.jetbrains.jps.builders.storage.BuildDataPaths
|
||||||
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
import org.jetbrains.jps.incremental.ModuleBuildTarget
|
||||||
|
import org.jetbrains.jps.incremental.ModuleLevelBuilder
|
||||||
import org.jetbrains.jps.model.library.JpsOrderRootType
|
import org.jetbrains.jps.model.library.JpsOrderRootType
|
||||||
import org.jetbrains.jps.model.module.JpsModule
|
import org.jetbrains.jps.model.module.JpsModule
|
||||||
import org.jetbrains.jps.util.JpsPathUtil
|
import org.jetbrains.jps.util.JpsPathUtil
|
||||||
@@ -227,7 +228,19 @@ class KotlinJsModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleBu
|
|||||||
val jsCache = jpsIncrementalCache as IncrementalJsCache
|
val jsCache = jpsIncrementalCache as IncrementalJsCache
|
||||||
jsCache.header = incrementalResults.headerMetadata
|
jsCache.header = incrementalResults.headerMetadata
|
||||||
|
|
||||||
|
jsCache.updateSourceToOutputMap(files)
|
||||||
jsCache.compareAndUpdate(incrementalResults, changesCollector)
|
jsCache.compareAndUpdate(incrementalResults, changesCollector)
|
||||||
jsCache.clearCacheForRemovedClasses(changesCollector)
|
jsCache.clearCacheForRemovedClasses(changesCollector)
|
||||||
}
|
}
|
||||||
|
override fun registerOutputItems(outputConsumer: ModuleLevelBuilder.OutputConsumer, outputItems: List<GeneratedFile>) {
|
||||||
|
if (isIncrementalCompilationEnabled) {
|
||||||
|
for (output in outputItems) {
|
||||||
|
for (source in output.sourceFiles) {
|
||||||
|
outputConsumer.registerOutputFile(jpsModuleBuildTarget, File("${source.path.hashCode()}"), listOf(source.path))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
super.registerOutputItems(outputConsumer, outputItems)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Vendored
+8
-1
@@ -1,18 +1,25 @@
|
|||||||
================ Step #1 =================
|
================ Step #1 =================
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
out/production/module/foo/DirectBase.class
|
||||||
|
out/production/module/foo/DirectChild.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/direct.kt
|
src/direct.kt
|
||||||
End of files
|
End of files
|
||||||
Exit code: OK
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
================ Step #2 =================
|
================ Step #2 =================
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
out/production/module/foo/ReverseBase.class
|
||||||
|
out/production/module/foo/ReverseChild.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/reverse.kt
|
src/reverse.kt
|
||||||
End of files
|
End of files
|
||||||
Exit code: OK
|
Exit code: OK
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
Vendored
+3
-2
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module/META-INF/module.kotlin_module
|
||||||
out/production/module/test/BKt.class
|
out/production/module/test/B.class
|
||||||
out/production/module/test/UsageKt.class
|
out/production/module/test/I1.class
|
||||||
|
out/production/module/test/I2.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/b.kt
|
src/b.kt
|
||||||
|
|||||||
Vendored
+127
@@ -0,0 +1,127 @@
|
|||||||
|
================ Step #1 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
End of files
|
||||||
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: ABORT
|
||||||
|
------------------------------------------
|
||||||
|
COMPILATION FAILED
|
||||||
|
Class 'DerivedClass1' is not abstract and does not implement abstract base class member public/*package*/ abstract fun myAbs(): Unit defined in BaseClass
|
||||||
|
|
||||||
|
================ Step #2 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
End of files
|
||||||
|
|
||||||
|
================ Step #3 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
End of files
|
||||||
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
|
||||||
|
================ Step #4 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
End of files
|
||||||
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: ABORT
|
||||||
|
------------------------------------------
|
||||||
|
COMPILATION FAILED
|
||||||
|
'doSmth' hides member of supertype 'BaseClass' and needs 'override' modifier
|
||||||
|
|
||||||
|
================ Step #5 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
================ Step #6 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: OK
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
================ Step #7 =================
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/BaseClass.class
|
||||||
|
End of files
|
||||||
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/BaseClass.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/DerivedClass1.class
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/DerivedClass1.kt
|
||||||
|
End of files
|
||||||
|
Exit code: ABORT
|
||||||
|
------------------------------------------
|
||||||
|
COMPILATION FAILED
|
||||||
|
Return type of 'doSmthAnother' is not a subtype of the return type of the overridden member 'public/*package*/ open fun doSmthAnother(): String! defined in BaseClass'
|
||||||
+7
-3
@@ -1,6 +1,10 @@
|
|||||||
================ Step #1 =================
|
================ Step #1 =================
|
||||||
|
|
||||||
Compiling files:
|
Cleaning output files:
|
||||||
|
out/production/module/Foo.class
|
||||||
End of files
|
End of files
|
||||||
Exit code: OK
|
Exit code: NOTHING_DONE
|
||||||
|
------------------------------------------
|
||||||
|
Compiling files:
|
||||||
|
src/Foo.java
|
||||||
|
End of files
|
||||||
@@ -83,3 +83,4 @@ org.jetbrains.kotlin.checkers.FirKotlinHighlightingPassTestGenerated.Checker.tes
|
|||||||
org.jetbrains.kotlin.idea.caches.resolve.MultiModuleHighlightingTest.testLanguageVersionsViaFacets,,, FLAKY
|
org.jetbrains.kotlin.idea.caches.resolve.MultiModuleHighlightingTest.testLanguageVersionsViaFacets,,, FLAKY
|
||||||
org.jetbrains.kotlin.jps.build.IncrementalJvmJpsTestGenerated.WithJava.JavaUsedInKotlin.SamConversions.testMethodAdded, KT-44844 fixed in IDEA 212,,
|
org.jetbrains.kotlin.jps.build.IncrementalJvmJpsTestGenerated.WithJava.JavaUsedInKotlin.SamConversions.testMethodAdded, KT-44844 fixed in IDEA 212,,
|
||||||
org.jetbrains.kotlin.jps.build.IncrementalJvmJpsTestGenerated.WithJava.JavaUsedInKotlin.SamConversions.testMethodAddedSamAdapter, KT-44844 fixed in IDEA 212,,
|
org.jetbrains.kotlin.jps.build.IncrementalJvmJpsTestGenerated.WithJava.JavaUsedInKotlin.SamConversions.testMethodAddedSamAdapter, KT-44844 fixed in IDEA 212,,
|
||||||
|
org.jetbrains.kotlin.jps.build.IncrementalJvmJpsTestGenerated.WithJava.JavaUsedInKotlin.SamConversions.testMethodAddDefault, KT-44844 fixed in IDEA 212,,
|
||||||
|
|||||||
|
Reference in New Issue
Block a user