Kapt: support incremental compilation in Gradle (KT-13500)
Kapt will process sources on each step of incremental compilation. (cherry picked from commit 4cb2127)
This commit is contained in:
committed by
Yan Zhulanow
parent
743be477ec
commit
32d77e5226
+5
-2
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.codegen.AbstractBytecodeTextTest
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestUtil
|
||||
import org.jetbrains.kotlin.java.model.JeName
|
||||
import org.jetbrains.kotlin.java.model.elements.JeAnnotationMirror
|
||||
import org.jetbrains.kotlin.java.model.elements.JeMethodExecutableElement
|
||||
import org.jetbrains.kotlin.java.model.elements.JeTypeElement
|
||||
@@ -40,13 +39,17 @@ import javax.lang.model.element.*
|
||||
|
||||
class AnnotationProcessingExtensionForTests(
|
||||
val processors: List<Processor>
|
||||
) : AbstractAnnotationProcessingExtension(createTempDir(), createTempDir(), listOf(), true) {
|
||||
) : AbstractAnnotationProcessingExtension(createTempDir(), createTempDir(), listOf(), true, createIncrementalDataFile()) {
|
||||
override fun loadAnnotationProcessors() = processors
|
||||
|
||||
private companion object {
|
||||
fun createTempDir(): File = Files.createTempDirectory("ap-test").toFile().apply {
|
||||
deleteOnExit()
|
||||
}
|
||||
|
||||
fun createIncrementalDataFile(): File = File.createTempFile("incrementalData", "txt").apply {
|
||||
deleteOnExit()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+16
@@ -16,9 +16,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.annotation.processing.test.processor
|
||||
|
||||
import org.intellij.lang.annotations.Language
|
||||
import org.jetbrains.kotlin.java.model.elements.*
|
||||
import org.jetbrains.kotlin.java.model.types.JeDeclaredType
|
||||
import org.jetbrains.kotlin.java.model.types.JeMethodExecutableTypeMirror
|
||||
import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisCompletedHandlerExtension
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||
import javax.lang.model.element.AnnotationMirror
|
||||
import javax.lang.model.type.DeclaredType
|
||||
@@ -184,4 +186,18 @@ class ProcessorTests : AbstractProcessorTest() {
|
||||
check("g", "<D>(D)void")
|
||||
check("g", "(java.lang.String)void", erasure)
|
||||
}
|
||||
|
||||
fun testIncrementalDataSimple() = incrementalDataTest(
|
||||
"IncrementalDataSimple",
|
||||
"i Intf, i Test, i Test2, i Test3, i Test8")
|
||||
|
||||
private fun incrementalDataTest(fileName: String, @Language("TEXT") expectedText: String) {
|
||||
test(fileName, "Anno", "Anno2", "Anno3") { set, roundEnv, env -> }
|
||||
val ext = AnalysisCompletedHandlerExtension.getInstances(myEnvironment.project)
|
||||
.firstIsInstance<AnnotationProcessingExtensionForTests>()
|
||||
val incrementalDataFile = ext.incrementalDataFile
|
||||
assertNotNull(incrementalDataFile)
|
||||
val text = incrementalDataFile!!.readText().lines().sorted().joinToString(", ")
|
||||
assertEquals(expectedText, text)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user