diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt index ec2b9ae66c6..6456709a6b2 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt @@ -166,7 +166,7 @@ class WasmCompiledModuleFragment(val irBuiltIns: IrBuiltIns) { val masterInitFunction = WasmFunction.Defined("__init", WasmSymbol(masterInitFunctionType)) with(WasmIrExpressionBuilder(masterInitFunction.instructions)) { initFunctions.sortedBy { it.priority }.forEach { - buildCall(WasmSymbol(it.function), SourceLocation.NoLocation) + buildCall(WasmSymbol(it.function), SourceLocation.NoLocation("Generated service code")) } } exports += WasmExport.Function("__init", masterInitFunction) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/locationUtils.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/locationUtils.kt index 321287b72b2..6cd07c5503c 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/locationUtils.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/locationUtils.kt @@ -10,13 +10,13 @@ import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.wasm.ir.source.location.SourceLocation fun IrExpression.getSourceLocation(fileEntry: IrFileEntry?): SourceLocation { - if (fileEntry == null) return SourceLocation.NoLocation + if (fileEntry == null) return SourceLocation.NoLocation("fileEntry is null") val path = fileEntry.name val startLine = fileEntry.getLineNumber(startOffset) val startColumn = fileEntry.getColumnNumber(startOffset) - if (startLine < 0 || startColumn < 0) return SourceLocation.NoLocation + if (startLine < 0 || startColumn < 0) return SourceLocation.NoLocation("startLine or startColumn < 0") return SourceLocation.Location(path, startLine, startColumn) } diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/LocationHolder.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/LocationHolder.kt index 3361b2b4f87..819b484094c 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/LocationHolder.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/LocationHolder.kt @@ -10,6 +10,6 @@ value class LocationHolder(val location: SourceLocation) inline fun withLocation(location: SourceLocation, body: LocationHolder.() -> R): R = LocationHolder(location).body() -inline fun withNoLocation(body: LocationHolder.() -> R): R = withLocation(SourceLocation.NoLocation, body) +inline fun withNoLocation(description: String, body: LocationHolder.() -> R): R = withLocation(SourceLocation.NoLocation(description), body) inline fun withTBDLocation(body: LocationHolder.() -> R): R = withLocation(SourceLocation.TBDLocation, body) diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/SourceLocation.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/SourceLocation.kt index ae36bad471f..a7c3c3edb8d 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/SourceLocation.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/source/location/SourceLocation.kt @@ -6,8 +6,13 @@ package org.jetbrains.kotlin.wasm.ir.source.location sealed class SourceLocation { - object NoLocation: SourceLocation() - object TBDLocation: SourceLocation() + private object NoLocation : SourceLocation() + object TBDLocation : SourceLocation() data class Location(val file: String, val line: Int, val column: Int) : SourceLocation() + + companion object { + @Suppress("FunctionName", "UNUSED_PARAMETER") + fun NoLocation(description: String): SourceLocation = NoLocation + } }