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.diagnostic.KaptError
|
||||||
import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter
|
import org.jetbrains.kotlin.kapt3.stubs.ClassFileToSourceStubConverter
|
||||||
import org.jetbrains.kotlin.kapt3.util.KaptLogger
|
import org.jetbrains.kotlin.kapt3.util.KaptLogger
|
||||||
|
import org.jetbrains.kotlin.modules.TargetId
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||||
@@ -61,10 +62,11 @@ class ClasspathBasedKapt3Extension(
|
|||||||
val useLightAnalysis: Boolean,
|
val useLightAnalysis: Boolean,
|
||||||
correctErrorTypes: Boolean,
|
correctErrorTypes: Boolean,
|
||||||
pluginInitializedTime: Long,
|
pluginInitializedTime: Long,
|
||||||
logger: KaptLogger
|
logger: KaptLogger,
|
||||||
|
compilerConfiguration: CompilerConfiguration
|
||||||
) : AbstractKapt3Extension(compileClasspath, annotationProcessingClasspath, javaSourceRoots, sourcesOutputDir,
|
) : AbstractKapt3Extension(compileClasspath, annotationProcessingClasspath, javaSourceRoots, sourcesOutputDir,
|
||||||
classFilesOutputDir, stubsOutputDir, incrementalDataOutputDir, options, javacOptions, annotationProcessors,
|
classFilesOutputDir, stubsOutputDir, incrementalDataOutputDir, options, javacOptions, annotationProcessors,
|
||||||
aptMode, pluginInitializedTime, logger, correctErrorTypes) {
|
aptMode, pluginInitializedTime, logger, correctErrorTypes, compilerConfiguration) {
|
||||||
override val analyzePartially: Boolean
|
override val analyzePartially: Boolean
|
||||||
get() = useLightAnalysis
|
get() = useLightAnalysis
|
||||||
|
|
||||||
@@ -113,7 +115,8 @@ abstract class AbstractKapt3Extension(
|
|||||||
val aptMode: AptMode,
|
val aptMode: AptMode,
|
||||||
val pluginInitializedTime: Long,
|
val pluginInitializedTime: Long,
|
||||||
val logger: KaptLogger,
|
val logger: KaptLogger,
|
||||||
val correctErrorTypes: Boolean
|
val correctErrorTypes: Boolean,
|
||||||
|
val compilerConfiguration: CompilerConfiguration
|
||||||
) : PartialAnalysisHandlerExtension() {
|
) : PartialAnalysisHandlerExtension() {
|
||||||
val compileClasspath = compileClasspath.distinct()
|
val compileClasspath = compileClasspath.distinct()
|
||||||
val annotationProcessingClasspath = annotationProcessingClasspath.distinct()
|
val annotationProcessingClasspath = annotationProcessingClasspath.distinct()
|
||||||
@@ -215,13 +218,18 @@ abstract class AbstractKapt3Extension(
|
|||||||
): KaptContext<GenerationState> {
|
): KaptContext<GenerationState> {
|
||||||
val builderFactory = Kapt3BuilderFactory()
|
val builderFactory = Kapt3BuilderFactory()
|
||||||
|
|
||||||
|
val targetId = TargetId(
|
||||||
|
name = compilerConfiguration[CommonConfigurationKeys.MODULE_NAME] ?: module.name.asString(),
|
||||||
|
type = "java-production")
|
||||||
|
|
||||||
val generationState = GenerationState(
|
val generationState = GenerationState(
|
||||||
project,
|
project,
|
||||||
builderFactory,
|
builderFactory,
|
||||||
module,
|
module,
|
||||||
bindingContext,
|
bindingContext,
|
||||||
files,
|
files,
|
||||||
CompilerConfiguration.EMPTY)
|
compilerConfiguration,
|
||||||
|
targetId = targetId)
|
||||||
|
|
||||||
val (classFilesCompilationTime) = measureTimeMillis {
|
val (classFilesCompilationTime) = measureTimeMillis {
|
||||||
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION)
|
KotlinCodegenFacade.compileCorrectFiles(generationState, CompilationErrorHandler.THROW_EXCEPTION)
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ class Kapt3ComponentRegistrar : ComponentRegistrar {
|
|||||||
val kapt3AnalysisCompletedHandlerExtension = ClasspathBasedKapt3Extension(
|
val kapt3AnalysisCompletedHandlerExtension = ClasspathBasedKapt3Extension(
|
||||||
compileClasspath, apClasspath, javaSourceRoots, sourcesOutputDir, classFilesOutputDir,
|
compileClasspath, apClasspath, javaSourceRoots, sourcesOutputDir, classFilesOutputDir,
|
||||||
stubsOutputDir, incrementalDataOutputDir, apOptions, javacCliOptions, annotationProcessors,
|
stubsOutputDir, incrementalDataOutputDir, apOptions, javacCliOptions, annotationProcessors,
|
||||||
aptMode, useLightAnalysis, correctErrorTypes, System.currentTimeMillis(), logger)
|
aptMode, useLightAnalysis, correctErrorTypes, System.currentTimeMillis(), logger, configuration)
|
||||||
AnalysisHandlerExtension.registerExtension(project, kapt3AnalysisCompletedHandlerExtension)
|
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.CodegenTestCase
|
||||||
import org.jetbrains.kotlin.codegen.GenerationUtils
|
import org.jetbrains.kotlin.codegen.GenerationUtils
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.kapt3.AbstractKapt3Extension
|
import org.jetbrains.kotlin.kapt3.AbstractKapt3Extension
|
||||||
import org.jetbrains.kotlin.kapt3.AptMode.STUBS_AND_APT
|
import org.jetbrains.kotlin.kapt3.AptMode.STUBS_AND_APT
|
||||||
import org.jetbrains.kotlin.kapt3.Kapt3BuilderFactory
|
import org.jetbrains.kotlin.kapt3.Kapt3BuilderFactory
|
||||||
@@ -153,7 +154,7 @@ abstract class AbstractKotlinKapt3IntegrationTest : CodegenTestCase() {
|
|||||||
) : AbstractKapt3Extension(PathUtil.getJdkClassesRootsFromCurrentJre() + PathUtil.getKotlinPathsForIdeaPlugin().stdlibPath,
|
) : AbstractKapt3Extension(PathUtil.getJdkClassesRootsFromCurrentJre() + PathUtil.getKotlinPathsForIdeaPlugin().stdlibPath,
|
||||||
emptyList(), javaSourceRoots, outputDir, outputDir,
|
emptyList(), javaSourceRoots, outputDir, outputDir,
|
||||||
stubsOutputDir, incrementalDataOutputDir, options, emptyMap(), "", STUBS_AND_APT, System.currentTimeMillis(),
|
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 savedStubs: String? = null
|
||||||
internal var savedBindings: Map<String, KaptJavaFileObject>? = null
|
internal var savedBindings: Map<String, KaptJavaFileObject>? = null
|
||||||
|
|||||||
Reference in New Issue
Block a user