Report IR errors via new diagnostic infrastructure

This commit is contained in:
Ilya Chernikov
2021-09-28 19:15:23 +02:00
parent 21ea92cd4a
commit 1e056a7aa8
13 changed files with 216 additions and 102 deletions
@@ -26,6 +26,8 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.diagnostics.DiagnosticSink
import org.jetbrains.kotlin.idea.MainFunctionDetector
import org.jetbrains.kotlin.load.java.components.JavaDeprecationSettings
@@ -69,6 +71,7 @@ class GenerationState private constructor(
val jvmBackendClassResolver: JvmBackendClassResolver,
val isIrBackend: Boolean,
val ignoreErrors: Boolean,
val diagnosticReporter: DiagnosticReporter,
) {
class Builder(
private val project: Project,
@@ -122,12 +125,17 @@ class GenerationState private constructor(
fun ignoreErrors(v: Boolean): Builder =
apply { ignoreErrors = v }
var diagnosticReporter: DiagnosticReporter? = null
fun diagnosticReporter(v: DiagnosticReporter) =
apply { diagnosticReporter = v }
fun build() =
GenerationState(
project, builderFactory, module, bindingContext, files, configuration,
generateDeclaredClassFilter, codegenFactory, targetId,
moduleName, outDirectory, onIndependentPartCompilationEnd, wantsDiagnostics,
jvmBackendClassResolver, isIrBackend, ignoreErrors
jvmBackendClassResolver, isIrBackend, ignoreErrors,
diagnosticReporter ?: DiagnosticReporterFactory.createReporter()
)
}