From 4f132f6d40f2270b243600ccb09a7644c52fc4b3 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 30 May 2017 22:04:07 +0300 Subject: [PATCH] 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() --- .../org/jetbrains/kotlin/kapt3/Kapt3Extension.kt | 16 ++++++++++++---- .../org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt | 2 +- .../test/AbstractKotlinKapt3IntegrationTest.kt | 3 ++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt index 378d95ab63d..2f1871380c0 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt @@ -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 { 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) diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt index a5ac3ab124d..9022dc0978d 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt @@ -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) } diff --git a/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt b/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt index b6c2af1eda1..fe6cbebc38c 100644 --- a/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt +++ b/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/AbstractKotlinKapt3IntegrationTest.kt @@ -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? = null