From 0b2bc068701b6eac744a7f0f3b8f5ca53bb14237 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Fri, 14 Oct 2022 16:20:07 +0300 Subject: [PATCH] Extract ErrorReportingContext from CommonBackendContext --- .../kotlin/backend/common/CommonBackendContext.kt | 8 +++++--- .../src/org/jetbrains/kotlin/backend/konan/Reporting.kt | 8 ++++---- .../src/org/jetbrains/kotlin/ir/util/IrUtils2.kt | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt index 33d682af892..3b5bf8097ea 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt @@ -27,10 +27,12 @@ interface LoggingContext { fun log(message: () -> String) } -interface CommonBackendContext : BackendContext, LoggingContext { - override val ir: Ir - +interface ErrorReportingContext { fun report(element: IrElement?, irFile: IrFile?, message: String, isError: Boolean) +} + +interface CommonBackendContext : BackendContext, LoggingContext, ErrorReportingContext { + override val ir: Ir val configuration: CompilerConfiguration val scriptMode: Boolean diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Reporting.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Reporting.kt index f41fe630c3e..741873bbdcd 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Reporting.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Reporting.kt @@ -5,19 +5,19 @@ package org.jetbrains.kotlin.backend.konan -import org.jetbrains.kotlin.backend.common.CommonBackendContext +import org.jetbrains.kotlin.backend.common.ErrorReportingContext import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.util.render -internal fun CommonBackendContext.reportCompilationError(message: String, irFile: IrFile, irElement: IrElement): Nothing { +internal fun ErrorReportingContext.reportCompilationError(message: String, irFile: IrFile, irElement: IrElement): Nothing { report(irElement, irFile, message, true) throw KonanCompilationException() } -internal fun CommonBackendContext.reportCompilationError(message: String): Nothing { +internal fun ErrorReportingContext.reportCompilationError(message: String): Nothing { report(null, null, message, true) throw KonanCompilationException() } @@ -27,7 +27,7 @@ internal fun CompilerConfiguration.reportCompilationError(message: String): Noth throw KonanCompilationException() } -internal fun CommonBackendContext.reportCompilationWarning(message: String) { +internal fun ErrorReportingContext.reportCompilationWarning(message: String) { report(null, null, message, false) } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index 752d76a2b2a..12898f6d73c 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.ir.util import org.jetbrains.kotlin.backend.common.CommonBackendContext +import org.jetbrains.kotlin.backend.common.ErrorReportingContext import org.jetbrains.kotlin.backend.konan.KonanBackendContext import org.jetbrains.kotlin.backend.konan.KonanCompilationException import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName @@ -126,7 +127,7 @@ tailrec fun IrDeclaration.getContainingFile(): IrFile? { } } -internal fun KonanBackendContext.report(declaration: IrDeclaration, message: String, isError: Boolean) { +internal fun ErrorReportingContext.report(declaration: IrDeclaration, message: String, isError: Boolean) { val irFile = declaration.getContainingFile() this.report( declaration,