Kapt: Fix output file reporting in IC
Fix REPORT_OUTPUT_FILES option passing to GenerationState created in kapt. This fixes these tests: Kapt3Incremental.testChangeAnnotatedPropertyType() Kapt3Incremental.testRemoveAnnotations() Kapt3Incremental.testRemoveSourceFile()
This commit is contained in:
committed by
Yan Zhulanow
parent
1572d2cf2b
commit
4f132f6d40
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.kapt3.AptMode.*
|
||||
import org.jetbrains.kotlin.kapt3.diagnostic.KaptError
|
||||
import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter
|
||||
import org.jetbrains.kotlin.kapt3.util.KaptLogger
|
||||
import org.jetbrains.kotlin.modules.TargetId
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
@@ -61,10 +62,11 @@ class ClasspathBasedKapt3Extension(
|
||||
val useLightAnalysis: Boolean,
|
||||
correctErrorTypes: Boolean,
|
||||
pluginInitializedTime: Long,
|
||||
logger: KaptLogger
|
||||
logger: KaptLogger,
|
||||
compilerConfiguration: CompilerConfiguration
|
||||
) : AbstractKapt3Extension(compileClasspath, annotationProcessingClasspath, javaSourceRoots, sourcesOutputDir,
|
||||
classFilesOutputDir, stubsOutputDir, incrementalDataOutputDir, options, javacOptions, annotationProcessors,
|
||||
aptMode, pluginInitializedTime, logger, correctErrorTypes) {
|
||||
aptMode, pluginInitializedTime, logger, correctErrorTypes, compilerConfiguration) {
|
||||
override val analyzePartially: Boolean
|
||||
get() = useLightAnalysis
|
||||
|
||||
@@ -113,7 +115,8 @@ abstract class AbstractKapt3Extension(
|
||||
val aptMode: AptMode,
|
||||
val pluginInitializedTime: Long,
|
||||
val logger: KaptLogger,
|
||||
val correctErrorTypes: Boolean
|
||||
val correctErrorTypes: Boolean,
|
||||
val compilerConfiguration: CompilerConfiguration
|
||||
) : PartialAnalysisHandlerExtension() {
|
||||
val compileClasspath = compileClasspath.distinct()
|
||||
val annotationProcessingClasspath = annotationProcessingClasspath.distinct()
|
||||
@@ -215,13 +218,18 @@ abstract class AbstractKapt3Extension(
|
||||
): KaptContext<GenerationState> {
|
||||
val builderFactory = Kapt3BuilderFactory()
|
||||
|
||||
val targetId = TargetId(
|
||||
name = compilerConfiguration[CommonConfigurationKeys.MODULE_NAME] ?: module.name.asString(),
|
||||
type = "java-production")
|
||||
|
||||
val generationState = GenerationState(
|
||||
project,
|
||||
builderFactory,
|
||||
module,
|
||||
bindingContext,
|
||||
files,
|
||||
CompilerConfiguration.EMPTY)
|
||||
compilerConfiguration,
|
||||
targetId = targetId)
|
||||
|
||||
val (classFilesCompilationTime) = measureTimeMillis {
|
||||
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION)
|
||||
|
||||
@@ -262,7 +262,7 @@ class Kapt3ComponentRegistrar : ComponentRegistrar {
|
||||
val kapt3AnalysisCompletedHandlerExtension = ClasspathBasedKapt3Extension(
|
||||
compileClasspath, apClasspath, javaSourceRoots, sourcesOutputDir, classFilesOutputDir,
|
||||
stubsOutputDir, incrementalDataOutputDir, apOptions, javacCliOptions, annotationProcessors,
|
||||
aptMode, useLightAnalysis, correctErrorTypes, System.currentTimeMillis(), logger)
|
||||
aptMode, useLightAnalysis, correctErrorTypes, System.currentTimeMillis(), logger, configuration)
|
||||
AnalysisHandlerExtension.registerExtension(project, kapt3AnalysisCompletedHandlerExtension)
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestCase
|
||||
import org.jetbrains.kotlin.codegen.GenerationUtils
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.kapt3.AbstractKapt3Extension
|
||||
import org.jetbrains.kotlin.kapt3.AptMode.STUBS_AND_APT
|
||||
import org.jetbrains.kotlin.kapt3.Kapt3BuilderFactory
|
||||
@@ -153,7 +154,7 @@ abstract class AbstractKotlinKapt3IntegrationTest : CodegenTestCase() {
|
||||
) : AbstractKapt3Extension(PathUtil.getJdkClassesRootsFromCurrentJre() + PathUtil.getKotlinPathsForIdeaPlugin().stdlibPath,
|
||||
emptyList(), javaSourceRoots, outputDir, outputDir,
|
||||
stubsOutputDir, incrementalDataOutputDir, options, emptyMap(), "", STUBS_AND_APT, System.currentTimeMillis(),
|
||||
KaptLogger(true), correctErrorTypes = true
|
||||
KaptLogger(true), correctErrorTypes = true, compilerConfiguration = CompilerConfiguration.EMPTY
|
||||
) {
|
||||
internal var savedStubs: String? = null
|
||||
internal var savedBindings: Map<String, KaptJavaFileObject>? = null
|
||||
|
||||
Reference in New Issue
Block a user