[JS IR BE] Improve error reporting

This commit is contained in:
Roman Artemev
2019-07-03 20:03:59 +03:00
committed by romanart
parent 940c9e5604
commit b4c68025a7
2 changed files with 5 additions and 6 deletions
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrConstructor
import org.jetbrains.kotlin.ir.declarations.IrFunction
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.util.collectRealOverrides
import org.jetbrains.kotlin.ir.util.render
val IrFunction.realOverrideTarget: IrFunction
get() = when (this) {
@@ -21,5 +22,6 @@ val IrFunction.realOverrideTarget: IrFunction
val IrSimpleFunction.realOverrideTarget: IrSimpleFunction
get(): IrSimpleFunction {
val realOverrides = collectRealOverrides()
return realOverrides.find { it.modality != Modality.ABSTRACT } ?: realOverrides.first()
return realOverrides.find { it.modality != Modality.ABSTRACT } ?: realOverrides.firstOrNull() ?:
error("No real override target found for ${this.render()}")
}
@@ -12,10 +12,7 @@ import org.jetbrains.kotlin.ir.backend.js.JsLoweredDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrLoop
import org.jetbrains.kotlin.ir.types.isUnit
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
import org.jetbrains.kotlin.ir.util.isEnumClass
import org.jetbrains.kotlin.ir.util.isInlined
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid
@@ -279,7 +276,7 @@ class NameTables(packages: List<IrPackageFragment>) {
if (name == null && signature is ParameterTypeBasedSignature && signature.suggestedName.startsWith("invoke"))
return signature.suggestedName
require(name != null) {
"Can't find name for member function $function"
"Can't find name for member function ${function.render()}"
}
return name
}