Add function name to fake local variable for inline argument

This commit is contained in:
Natalia Ukhorskaya
2016-03-10 15:13:59 +03:00
parent a830d80dac
commit e2d2d696c0
6 changed files with 80 additions and 12 deletions
@@ -0,0 +1,8 @@
LineBreakpoint created at nestedInlineArguments.kt:13 lambdaOrdinal = 0
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! nestedInlineArguments.NestedInlineArgumentsKt
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
nestedInlineArguments.kt:13
Compile bytecode for it.i
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,19 @@
package nestedInlineArguments
fun main(args: Array<String>) {
val list1 = listOf("a")
val list2 = listOf(Bar())
list1.map { list2.foo(1) }
}
inline fun <reified T: Bar> List<T>.foo(key: Int): T? {
// EXPRESSION: it.i
// RESULT: 1: I
//Breakpoint! (lambdaOrdinal = 0)
return this.firstOrNull { it.i == key }
}
open class Foo
open class Bar {
val i = 1
}