From 6891ad0dfc5adc372826faf4812df6a614e09e2a Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 25 Jan 2021 23:32:32 +0300 Subject: [PATCH] [IR] Add `IrMessageLogger` interface for diagnostic reporting from IR --- .../kotlin/ir/util/IrMessageLogger.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrMessageLogger.kt diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrMessageLogger.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrMessageLogger.kt new file mode 100644 index 00000000000..9069a51c5d7 --- /dev/null +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrMessageLogger.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.util + +import org.jetbrains.kotlin.config.CompilerConfigurationKey + +interface IrMessageLogger { + + enum class Severity { + INFO, WARNING, ERROR + } + + data class Location(val filePath: String, val line: Int, val column: Int) + + fun report(severity: Severity, message: String, location: Location?) + + object None : IrMessageLogger { + override fun report(severity: Severity, message: String, location: Location?) {} + } + + companion object { + @JvmStatic + val IR_MESSAGE_LOGGER = CompilerConfigurationKey("ir message logger") + } +} \ No newline at end of file