Fix evaluation of local functions for new-inference

Plus, additionally fix evaluation of generic local functions everywhere

 The problem was that in new-inference we create more substituted
 descriptors while old inference tries to preserve original ones.
 Later, backend fails to retrieve those descriptors as it uses originals.
 But, again, this worked only for simple functions, for generic functions
 debugger with new and old inference worked incorrectly

 #KT-31785 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-05-31 15:52:31 +03:00
parent 8dabf24b41
commit 6d3a7102d5
3 changed files with 11 additions and 1 deletions
@@ -62,4 +62,11 @@ fun main(args: Array<String>) {
}
myLocalFun7()
fun <T> myLocalFun8(): T = 1 as T
// EXPRESSION: myLocalFun8<Int>()
// RESULT: 1: I
//Breakpoint!
myLocalFun8<Int>()
}
@@ -5,6 +5,7 @@ LineBreakpoint created at localFun.kt:34
LineBreakpoint created at localFun.kt:43
LineBreakpoint created at localFun.kt:54
LineBreakpoint created at localFun.kt:61
LineBreakpoint created at localFun.kt:71
Run Java
Connected to the target VM
localFun.kt:9
@@ -21,6 +22,8 @@ localFun.kt:54
Compile bytecode for myLocalFun6()
localFun.kt:61
Compile bytecode for myLocalFun6() + 1
localFun.kt:71
Compile bytecode for myLocalFun8<Int>()
Disconnected from the target VM
Process finished with exit code 0