[JS IR] Improve debug info for functions with default parameters
Don't generate unnecessary mappings so that the user doesn't need to step in many times to get where they want #KT-46276
This commit is contained in:
committed by
Space Team
parent
43c5c8b44f
commit
ccbb2a08a0
+4
-4
@@ -62,7 +62,7 @@ class JsDefaultArgumentStubGenerator(override val context: JsIrBackendContext) :
|
||||
}
|
||||
|
||||
private fun IrFunction.introduceDefaultResolution(): IrFunction {
|
||||
val irBuilder = context.createIrBuilder(symbol, startOffset, endOffset)
|
||||
val irBuilder = context.createIrBuilder(symbol, UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
||||
|
||||
val variables = mutableMapOf<IrValueParameter, IrValueParameter>()
|
||||
|
||||
@@ -140,7 +140,7 @@ class JsDefaultArgumentStubGenerator(override val context: JsIrBackendContext) :
|
||||
|
||||
override fun IrFunction.generateDefaultStubBody(originalDeclaration: IrFunction): IrBody {
|
||||
val ctx = context
|
||||
val irBuilder = context.createIrBuilder(symbol, startOffset, endOffset)
|
||||
val irBuilder = context.createIrBuilder(symbol, UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
||||
|
||||
val variables = mutableMapOf<IrValueParameter, IrValueDeclaration>().apply {
|
||||
originalDeclaration.dispatchReceiverParameter?.let {
|
||||
@@ -154,7 +154,7 @@ class JsDefaultArgumentStubGenerator(override val context: JsIrBackendContext) :
|
||||
}
|
||||
}
|
||||
|
||||
return irBuilder.irBlockBody(this) {
|
||||
return irBuilder.irBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET) {
|
||||
+valueParameters.zip(originalDeclaration.valueParameters)
|
||||
.mapNotNull { (new, original) ->
|
||||
createResolutionStatement(
|
||||
@@ -244,4 +244,4 @@ class JsDefaultArgumentStubGenerator(override val context: JsIrBackendContext) :
|
||||
|
||||
private fun IrFunction.hasDefaultArgs(): Boolean =
|
||||
valueParameters.any { it.defaultValue != null }
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -27,9 +27,7 @@ fun box() {
|
||||
// test.kt:11 box
|
||||
// test.kt:3 <init>
|
||||
// test.kt:11 box
|
||||
// test.kt:6 foo$default
|
||||
// test.kt:4 computeParam
|
||||
// test.kt:6 foo$default
|
||||
// test.kt:6 foo$default
|
||||
// test.kt:7 foo
|
||||
// test.kt:6 foo$default
|
||||
// test.kt:12 box
|
||||
// test.kt:12 box
|
||||
|
||||
Reference in New Issue
Block a user