Add AnalysisHandlerExtension extension point for K2MetadataCompiler
AnalysisHandlerExtension allows compiler plugins to: 1. Intercept and override the default analysis. 2. Utilize the compiler infrastructure to do custom analysis. A well know plugin on the JVM platform is KAPT.
This commit is contained in:
committed by
TeamCityServer
parent
e0c28e27d2
commit
4db79285c1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.cli.metadata
|
||||
|
||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.analyzer.common.CommonDependenciesContainer
|
||||
import org.jetbrains.kotlin.analyzer.common.CommonResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
@@ -33,7 +34,16 @@ internal fun runCommonAnalysisForSerialization(
|
||||
return null
|
||||
}
|
||||
|
||||
return runCommonAnalysis(environment, dependOnBuiltins, dependencyContainer)
|
||||
var analyzer: AnalyzerWithCompilerReport
|
||||
do {
|
||||
analyzer = runCommonAnalysis(environment, dependOnBuiltins, dependencyContainer)
|
||||
val result = analyzer.analysisResult
|
||||
if (result is AnalysisResult.RetryWithAdditionalRoots) {
|
||||
environment.addKotlinSourceRoots(result.additionalKotlinRoots)
|
||||
}
|
||||
} while (result is AnalysisResult.RetryWithAdditionalRoots)
|
||||
|
||||
return if (analyzer.analysisResult.shouldGenerateCode) analyzer else null
|
||||
}
|
||||
|
||||
private fun runCommonAnalysis(
|
||||
|
||||
Reference in New Issue
Block a user