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-11 16:01:57 +03:00
2020-03-11 22:08:59 +03:00
2020-03-18 11:31:53 +03:00
2020-02-20 14:24:02 +03:00
2020-02-27 19:01:32 +03:00
2020-02-28 15:29:02 +03:00
2020-03-04 16:55:33 +03:00
2020-02-19 15:58:08 +03:00
2020-02-07 18:44:50 +03:00
2020-03-13 12:18:02 +03:00
2020-03-13 12:18:02 +03:00
2019-11-19 11:00:09 +03:00
2020-03-18 11:31:53 +03:00
2020-03-11 16:01:57 +03:00
2020-03-18 11:31:53 +03:00
2019-11-19 11:00:09 +03:00
2020-03-04 01:34:17 +03:00
2019-12-27 13:46:05 +03:00
2020-02-06 12:44:14 +03:00
2020-02-20 14:24:02 +03:00
2020-03-04 16:55:33 +03:00
2020-03-04 16:55:33 +03:00
2020-03-18 13:13:54 +01:00
2020-02-28 15:29:02 +03:00
2020-02-20 14:24:02 +03:00
2020-03-18 13:33:56 +03:00
2020-03-11 16:01:57 +03:00
2020-02-07 18:44:50 +03:00
2020-02-28 15:29:02 +03:00
2020-03-13 12:18:02 +03:00
2020-01-22 15:51:11 +01:00
2020-03-13 12:18:02 +03:00
2020-02-20 14:24:02 +03:00
2019-12-11 16:54:15 +03:00
2020-03-13 12:18:02 +03:00
2020-01-10 10:43:07 +03:00
2020-02-11 15:53:25 +01:00
2019-11-19 11:00:09 +03:00
2020-03-13 23:26:12 +01:00
2020-02-20 18:34:51 +03:00
2020-03-11 16:01:57 +03:00
2020-03-13 12:18:02 +03:00
2020-03-06 12:47:00 +03:00
2020-02-28 15:29:02 +03:00
2020-03-10 15:19:34 +03:00
2020-03-04 16:55:33 +03:00
2020-03-10 12:07:15 +01:00
2020-03-17 22:56:45 +03:00
2020-03-11 16:01:57 +03:00
2019-11-19 11:00:09 +03:00
2020-03-17 22:56:45 +03:00
2020-03-13 17:28:31 +03:00
2020-03-11 22:08:59 +03:00
2020-02-20 14:24:02 +03:00
2020-03-11 16:01:57 +03:00
2020-03-12 13:51:40 +01:00
2020-03-13 12:18:02 +03:00
2019-12-05 13:08:51 +03:00
2020-02-20 14:24:02 +03:00
2020-03-10 15:19:34 +03:00
2020-03-13 12:18:02 +03:00
2020-01-31 16:41:25 +03:00
2020-03-13 12:18:02 +03:00
2020-02-05 11:19:21 +03:00
2020-02-14 17:53:28 +03:00
2020-03-13 12:18:02 +03:00
2020-02-28 15:29:02 +03:00
2020-02-13 11:35:48 +03:00
2020-02-20 14:24:02 +03:00
2020-03-03 22:38:21 +03:00
2019-11-19 11:00:09 +03:00
2020-03-18 11:31:53 +03:00
2020-01-29 09:12:40 +03:00
2020-03-18 11:31:53 +03:00
2020-02-20 14:24:02 +03:00
2020-03-11 16:01:57 +03:00
2020-03-13 12:18:02 +03:00
2020-03-18 11:31:53 +03:00
2020-01-21 15:57:35 +01:00
2020-03-17 12:18:48 +03:00
2020-03-18 11:31:53 +03:00
2020-03-10 15:19:34 +03:00
2020-03-11 16:01:57 +03:00
2020-01-10 10:43:07 +03:00
2020-03-17 12:18:48 +03:00
2020-03-13 12:18:02 +03:00
2020-03-13 12:18:02 +03:00
2020-03-13 10:15:56 +03:00
2020-03-04 16:55:33 +03:00
2020-02-13 23:43:03 +03:00
2019-11-19 11:00:09 +03:00
2020-03-11 22:08:59 +03:00
2020-03-11 22:08:59 +03:00
2019-11-19 11:00:09 +03:00
2020-02-28 15:29:02 +03:00
2020-02-28 15:29:02 +03:00
2020-03-10 15:19:34 +03:00
2020-02-20 14:24:02 +03:00
2020-02-20 14:24:02 +03:00
2020-03-04 16:55:31 +03:00
2020-03-13 12:18:02 +03:00
2020-03-06 22:59:52 +01:00
2020-01-16 12:43:09 +01:00
2020-03-06 18:33:25 +01:00
2020-02-20 14:24:02 +03:00
2019-11-01 19:40:20 +03:00
2020-03-18 14:18:47 +03:00
2020-03-11 16:01:57 +03:00
2020-02-28 15:29:02 +03:00
2020-02-05 21:51:33 +01:00
2019-12-11 16:54:15 +03:00
2020-02-06 12:44:14 +03:00
2020-02-20 14:24:02 +03:00
2020-03-11 22:08:59 +03:00
2020-03-04 16:55:31 +03:00