AnalyzerWithCompilerReport: some more cleanup after J2K
This commit is contained in:
+6
-10
@@ -45,12 +45,10 @@ import java.util.*
|
|||||||
class AnalyzerWithCompilerReport(collector: MessageCollector) {
|
class AnalyzerWithCompilerReport(collector: MessageCollector) {
|
||||||
private val messageCollector: MessageSeverityCollector = MessageSeverityCollector(collector)
|
private val messageCollector: MessageSeverityCollector = MessageSeverityCollector(collector)
|
||||||
|
|
||||||
var analysisResult: AnalysisResult? = null
|
lateinit var analysisResult: AnalysisResult
|
||||||
private set
|
|
||||||
|
|
||||||
private fun reportIncompleteHierarchies() {
|
private fun reportIncompleteHierarchies() {
|
||||||
assert(analysisResult != null)
|
val bindingContext = analysisResult.bindingContext
|
||||||
val bindingContext = analysisResult!!.bindingContext
|
|
||||||
val classes = bindingContext.getKeys(TraceBasedErrorReporter.INCOMPLETE_HIERARCHY)
|
val classes = bindingContext.getKeys(TraceBasedErrorReporter.INCOMPLETE_HIERARCHY)
|
||||||
if (!classes.isEmpty()) {
|
if (!classes.isEmpty()) {
|
||||||
val message = StringBuilder("Supertypes of the following classes cannot be resolved. " + "Please make sure you have the required dependencies in the classpath:\n")
|
val message = StringBuilder("Supertypes of the following classes cannot be resolved. " + "Please make sure you have the required dependencies in the classpath:\n")
|
||||||
@@ -65,8 +63,7 @@ class AnalyzerWithCompilerReport(collector: MessageCollector) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun reportAlternativeSignatureErrors() {
|
private fun reportAlternativeSignatureErrors() {
|
||||||
assert(analysisResult != null)
|
val bc = analysisResult.bindingContext
|
||||||
val bc = analysisResult!!.bindingContext
|
|
||||||
val descriptorsWithErrors = bc.getKeys(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS)
|
val descriptorsWithErrors = bc.getKeys(JavaBindingContext.LOAD_FROM_JAVA_SIGNATURE_ERRORS)
|
||||||
if (!descriptorsWithErrors.isEmpty()) {
|
if (!descriptorsWithErrors.isEmpty()) {
|
||||||
val message = StringBuilder("The following Java entities have annotations with wrong Kotlin signatures:\n")
|
val message = StringBuilder("The following Java entities have annotations with wrong Kotlin signatures:\n")
|
||||||
@@ -90,8 +87,7 @@ class AnalyzerWithCompilerReport(collector: MessageCollector) {
|
|||||||
|
|
||||||
private val abiVersionErrors: List<IncompatibleVersionErrorData>
|
private val abiVersionErrors: List<IncompatibleVersionErrorData>
|
||||||
get() {
|
get() {
|
||||||
assert(analysisResult != null)
|
val bindingContext = analysisResult.bindingContext
|
||||||
val bindingContext = analysisResult!!.bindingContext
|
|
||||||
|
|
||||||
val errorClasses = bindingContext.getKeys(TraceBasedErrorReporter.METADATA_VERSION_ERRORS)
|
val errorClasses = bindingContext.getKeys(TraceBasedErrorReporter.METADATA_VERSION_ERRORS)
|
||||||
val result = ArrayList<IncompatibleVersionErrorData>(errorClasses.size)
|
val result = ArrayList<IncompatibleVersionErrorData>(errorClasses.size)
|
||||||
@@ -120,11 +116,11 @@ class AnalyzerWithCompilerReport(collector: MessageCollector) {
|
|||||||
return messageCollector.anyReported(CompilerMessageSeverity.ERROR)
|
return messageCollector.anyReported(CompilerMessageSeverity.ERROR)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun analyzeAndReport(files: Collection<KtFile>, analyzer: Function0<AnalysisResult>) {
|
fun analyzeAndReport(files: Collection<KtFile>, analyzer: () -> AnalysisResult) {
|
||||||
analysisResult = analyzer.invoke()
|
analysisResult = analyzer.invoke()
|
||||||
reportSyntaxErrors(files)
|
reportSyntaxErrors(files)
|
||||||
val abiVersionErrors = abiVersionErrors
|
val abiVersionErrors = abiVersionErrors
|
||||||
reportDiagnostics(analysisResult!!.bindingContext.diagnostics, messageCollector, !abiVersionErrors.isEmpty())
|
reportDiagnostics(analysisResult.bindingContext.diagnostics, messageCollector, !abiVersionErrors.isEmpty())
|
||||||
if (hasErrors()) {
|
if (hasErrors()) {
|
||||||
reportMetadataVersionErrors(abiVersionErrors)
|
reportMetadataVersionErrors(abiVersionErrors)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -291,9 +291,8 @@ object KotlinToJVMBytecodeCompiler {
|
|||||||
K2JVMCompiler.reportPerf(environment.configuration, message)
|
K2JVMCompiler.reportPerf(environment.configuration, message)
|
||||||
|
|
||||||
val result = analyzerWithCompilerReport.analysisResult
|
val result = analyzerWithCompilerReport.analysisResult
|
||||||
assert(result != null) { "AnalysisResult should be non-null, compiling: " + environment.getSourceFiles() }
|
|
||||||
|
|
||||||
val context = CompilerPluginContext(environment.project, result!!.bindingContext,
|
val context = CompilerPluginContext(environment.project, result.bindingContext,
|
||||||
environment.getSourceFiles())
|
environment.getSourceFiles())
|
||||||
for (plugin in environment.configuration.getList(CLIConfigurationKeys.COMPILER_PLUGINS)) {
|
for (plugin in environment.configuration.getList(CLIConfigurationKeys.COMPILER_PLUGINS)) {
|
||||||
plugin.processFiles(context)
|
plugin.processFiles(context)
|
||||||
|
|||||||
Reference in New Issue
Block a user