[JS IR BE] Improve error reporting
This commit is contained in:
+3
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.ir.util.collectRealOverrides
|
import org.jetbrains.kotlin.ir.util.collectRealOverrides
|
||||||
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
|
|
||||||
val IrFunction.realOverrideTarget: IrFunction
|
val IrFunction.realOverrideTarget: IrFunction
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
@@ -21,5 +22,6 @@ val IrFunction.realOverrideTarget: IrFunction
|
|||||||
val IrSimpleFunction.realOverrideTarget: IrSimpleFunction
|
val IrSimpleFunction.realOverrideTarget: IrSimpleFunction
|
||||||
get(): IrSimpleFunction {
|
get(): IrSimpleFunction {
|
||||||
val realOverrides = collectRealOverrides()
|
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.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
||||||
import org.jetbrains.kotlin.ir.types.isUnit
|
import org.jetbrains.kotlin.ir.types.isUnit
|
||||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
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.visitors.IrElementVisitorVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
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"))
|
if (name == null && signature is ParameterTypeBasedSignature && signature.suggestedName.startsWith("invoke"))
|
||||||
return signature.suggestedName
|
return signature.suggestedName
|
||||||
require(name != null) {
|
require(name != null) {
|
||||||
"Can't find name for member function $function"
|
"Can't find name for member function ${function.render()}"
|
||||||
}
|
}
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user