pyos
2c06503311
JVM_IR: partially fix inline methods using captured crossinline lambdas
...
The fields containing crossinline lambdas should be package-private to
avoid generating synthetic accessors, which break object regeneration.
Note that the inline methods cannot actually be called, as call sites
will attempt to read the captured lambda from a field through a *copy*
of the local containing the object, so these reads will not be inlined,
causing an exception at runtime:
inline fun f(crossinline g: () -> Unit) = object : I {
inline fun h() = g()
// effectively `val tmp = this; return tmp.$g()`:
override fun run() = h()
}
f {}.run() // NoSuchFieldError: $g
This particular example can be fixed by reusing locals for receiver
parameters in IrInlineCodegen, but explicitly assigning `this` to
another variable and calling an inline method on it will break it again.
(This is only applicable to the JVM_IR backend, as the non-IR one fails
to generate `f` at all for some other reason.)
2020-03-18 13:13:54 +01:00
..
2020-03-03 15:12:13 +01:00
2020-02-07 18:44:50 +03:00
2020-02-27 12:28:19 +01:00
2020-03-13 12:18:02 +03:00
2020-02-07 18:44:50 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-03-18 13:13:54 +01:00
2020-03-03 18:54:36 +03:00
2020-01-20 16:00:32 +01:00
2019-11-19 11:00:09 +03:00
2020-03-03 18:54:36 +03:00
2019-11-19 11:00:09 +03:00
2020-02-05 15:07:43 +01:00
2019-11-28 21:19:27 +03:00
2020-03-18 13:13:54 +01:00
2019-11-19 11:00:09 +03:00
2020-03-09 19:21:32 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-01-14 21:04:42 +01:00
2020-01-14 21:04:42 +01:00
2020-01-14 21:04:42 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-03-02 09:49:28 +03:00
2019-11-19 11:00:09 +03:00
2020-02-12 12:23:13 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-03-03 18:54:36 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-02-26 13:23:12 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-02-25 10:45:59 +03:00
2019-12-23 18:03:43 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-01-20 16:36:03 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:10 +03:00
2020-02-05 19:00:54 +01:00
2019-11-19 11:00:09 +03:00
2019-12-23 18:03:40 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-01-14 21:04:42 +01:00
2020-01-14 21:04:42 +01:00
2020-01-24 14:17:44 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-03-03 18:54:36 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-12-24 19:26:06 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-02-05 15:07:43 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-02-24 17:12:43 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-03-03 18:54:36 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2020-02-24 17:12:43 +01:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00
2019-11-19 11:00:09 +03:00