Do not skip invoke call on parameters during smart step into (KT-18577)

#KT-18577 Fixed
This commit is contained in:
Nikolay Krasko
2017-06-22 17:54:06 +03:00
parent e5ce91dc5b
commit 502ac80b89
4 changed files with 105 additions and 3 deletions
@@ -0,0 +1,50 @@
package smartStepIntoToLambdaParameter
fun nonDefaultParameter(paramFun: (Int) -> Int) {
// SMART_STEP_INTO_BY_INDEX: 0
// RESUME: 1
//Breakpoint!
paramFun(1)
}
fun defaultParameter(f: (String) -> Int = { it.toInt() }) {
// SMART_STEP_INTO_BY_INDEX: 0
// RESUME: 1
//Breakpoint!
f("12")
}
fun badSignatureIsSkipped(f: (String) -> Int = { it.toInt() }, paramFun: (Int) -> Int) {
// SMART_STEP_INTO_BY_INDEX: 0
// RESUME: 1
//Breakpoint!
paramFun(f("12"))
}
fun nonDefaultWithAnonymousFun(paramFun: (Int) -> Int) {
// SMART_STEP_INTO_BY_INDEX: 0
// RESUME: 1
//Breakpoint!
paramFun(12)
}
fun withExtensionParameters(paramFun: Int.() -> Int) {
// SMART_STEP_INTO_BY_INDEX: 0
// RESUME: 1
//Breakpoint!
12.paramFun()
}
fun main(args: Array<String>) {
val localFun : (Int) -> Int = { it + 1 }
nonDefaultParameter(localFun)
defaultParameter()
badSignatureIsSkipped { it + 1 }
nonDefaultWithAnonymousFun(fun (i: Int): Int { return i })
withExtensionParameters { this }
}
@@ -0,0 +1,20 @@
LineBreakpoint created at smartStepIntoToLambdaParameter.kt:7
LineBreakpoint created at smartStepIntoToLambdaParameter.kt:14
LineBreakpoint created at smartStepIntoToLambdaParameter.kt:21
LineBreakpoint created at smartStepIntoToLambdaParameter.kt:28
LineBreakpoint created at smartStepIntoToLambdaParameter.kt:35
Run Java
Connected to the target VM
smartStepIntoToLambdaParameter.kt:7
smartStepIntoToLambdaParameter.kt:39
smartStepIntoToLambdaParameter.kt:14
smartStepIntoToLambdaParameter.kt:10
smartStepIntoToLambdaParameter.kt:21
smartStepIntoToLambdaParameter.kt:45
smartStepIntoToLambdaParameter.kt:28
smartStepIntoToLambdaParameter.kt:47
smartStepIntoToLambdaParameter.kt:35
smartStepIntoToLambdaParameter.kt:49
Disconnected from the target VM
Process finished with exit code 0