Tests for Kapt3 with JVM_IR backend

This commit is contained in:
Georgy Bronnikov
2019-10-29 13:53:31 +03:00
parent 4d9839a790
commit 688a2185fa
5 changed files with 513 additions and 2 deletions
@@ -69,14 +69,16 @@ object GenerationUtils {
JvmResolveUtil.analyzeAndCheckForErrors(files.first().project, files, configuration, packagePartProvider, trace)
analysisResult.throwIfError()
/* Currently Kapt3 only works with the old JVM backend, so disable IR for everything except actual bytecode generation. */
val isIrBackend = classBuilderFactory.classBuilderMode == ClassBuilderMode.FULL && configuration.getBoolean(JVMConfigurationKeys.IR)
val state = GenerationState.Builder(
files.first().project, classBuilderFactory, analysisResult.moduleDescriptor, analysisResult.bindingContext,
files, configuration
).codegenFactory(
if (configuration.getBoolean(JVMConfigurationKeys.IR))
if (isIrBackend)
JvmIrCodegenFactory(configuration.get(CLIConfigurationKeys.PHASE_CONFIG) ?: PhaseConfig(jvmPhases))
else DefaultCodegenFactory
).build()
).isIrBackend(isIrBackend).build()
if (analysisResult.shouldGenerateCode) {
KotlinCodegenFacade.compileCorrectFiles(state, CompilationErrorHandler.THROW_EXCEPTION)
}