[JVM] Fix shrinking of local range for dead variables.
Coroutine transform would occasionally *extend* the range of a local instead of shrinking it (if the next suspension point is after the end point for the local). That leads to the local variable table having a local that covers code where it is not defined. That is invalid and leads to D8 removing the locals table from the code.
This commit is contained in:
committed by
TeamCityServer
parent
ebdbcbb7b6
commit
b27a109a1e
+23
@@ -0,0 +1,23 @@
|
||||
// WITH_RUNTIME
|
||||
// WITH_COROUTINES
|
||||
// FULL_RUNTIME
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
|
||||
class JarFile {
|
||||
fun entries() = listOf<String>()
|
||||
}
|
||||
|
||||
private fun scriptTemplatesDiscoverySequence(): Sequence<String> {
|
||||
return sequence<String> {
|
||||
yield("OK")
|
||||
for (dep in listOf<String>()) {
|
||||
try {
|
||||
} catch (e: Throwable) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return scriptTemplatesDiscoverySequence().first()
|
||||
}
|
||||
Reference in New Issue
Block a user