7b7c517dbb
#KT-35655 Fixed
59 lines
1.8 KiB
Kotlin
Vendored
59 lines
1.8 KiB
Kotlin
Vendored
|
|
|
|
//FILE: test.kt
|
|
fun foo() {
|
|
val x = 1
|
|
fun bar() {
|
|
val y = x
|
|
}
|
|
bar()
|
|
}
|
|
|
|
fun box() {
|
|
foo()
|
|
}
|
|
|
|
// Local functions are compiled to private static functions on the class
|
|
// containing the local funtion. This has a number of consequences observable
|
|
// from a debugging perspective, for this test specifically:
|
|
// - local functions do not figure in the LVT of the outer function, as they
|
|
// are not instantiated.
|
|
// - the _declaration_ of the local function does not figure in the byte code
|
|
// of the outer function and hence, has no line number
|
|
// - captures are treated differently, according to the implementation
|
|
// strategy: on the IR, captures are passed as arguments to the static
|
|
// function, on the old backend, they are added to fields on the lambda
|
|
// object. Hence, for debugging purposes, captures are "just"
|
|
// variables local to the function, and hence need no name mangling to
|
|
// properly figure in the debugger.
|
|
|
|
// EXPECTATIONS JVM JVM_IR
|
|
// test.kt:13 box:
|
|
// test.kt:5 foo:
|
|
// EXPECTATIONS JVM
|
|
// test.kt:6 foo: x:int=1:int
|
|
// test.kt:9 foo: x:int=1:int, $fun$bar$1:TestKt$foo$1=TestKt$foo$1
|
|
// EXPECTATIONS JVM_IR
|
|
// test.kt:9 foo: x:int=1:int
|
|
// EXPECTATIONS JVM
|
|
// test.kt:7 invoke:
|
|
// test.kt:8 invoke: y:int=1:int
|
|
// EXPECTATIONS JVM_IR
|
|
// test.kt:7 foo$bar: x:int=1:int
|
|
// test.kt:8 foo$bar: x:int=1:int, y:int=1:int
|
|
// EXPECTATIONS JVM
|
|
// test.kt:10 foo: x:int=1:int, $fun$bar$1:TestKt$foo$1=TestKt$foo$1
|
|
// test.kt:14 box:
|
|
// EXPECTATIONS JVM_IR
|
|
// test.kt:10 foo: x:int=1:int
|
|
// test.kt:14 box:
|
|
|
|
// EXPECTATIONS JS_IR
|
|
// test.kt:13 box:
|
|
// test.kt:5 foo:
|
|
// test.kt:9 foo: x=1:number
|
|
// test.kt:7 foo$bar: x=1:number
|
|
// test.kt:8 foo$bar: x=1:number, y=1:number
|
|
// test.kt:10 foo: x=1:number
|
|
// test.kt:14 box:
|