Mads Ager
8dee3c1ca0
[JVM] Do not unbox when local variable initialized with null.
...
This is already the case for straightline code such as
```
inline fun <R> f(size: Int, block: () -> R): R {
var result: R
result = block()
return result
}
```
However, if the local variable introduction happens at a merge
point as in the following example, we allow the unboxing but
only do it halfway. The initialization of the local is still
done with a null value.
```
inline fun <R> f(size: Int, block: () -> R): R {
var result: R
while (true) {
result = block()
if (size == 0) break
}
return result
}
```
This change disallows unboxing for this move complicated
case as well by bailing out if a local use is with a
TaintedBoxedValue (merge of Object and Integer).
^KT-48394 Fixed.
2021-08-26 15:14:02 +03:00
..
2021-08-23 23:04:35 +02:00
2021-07-13 21:23:17 +03:00
2021-08-01 22:23:40 +03:00
2021-05-18 22:20:12 +03:00
2021-08-23 16:20:41 +03:00
2021-08-26 15:14:02 +03:00
2021-08-04 16:23:37 +03:00
2021-08-17 21:38:01 +03:00
2021-08-20 06:41:03 +02:00
2021-04-19 16:05:12 +02:00
2021-08-01 22:23:40 +03:00
2021-07-23 14:58:23 +03:00
2021-02-20 10:31:26 +03:00
2021-05-14 15:38:09 +03:00
2021-08-06 22:47:36 +02:00
2021-05-18 22:20:12 +03:00
2021-02-11 13:50:08 +01:00
2021-01-25 17:08:31 +03:00
2021-06-17 21:40:30 +03:00
2021-07-19 19:24:57 +03:00
2021-08-26 08:52:34 +00:00
2021-08-12 17:32:35 +03:00
2021-08-04 16:23:37 +03:00
2021-07-28 02:16:01 +02:00
2021-07-16 02:24:36 +03:00
2021-07-07 16:19:27 +03:00
2021-05-19 00:52:25 +03:00
2021-05-18 22:20:12 +03:00
2021-03-12 14:36:53 +03:00
2021-07-01 17:40:41 +03:00
2021-08-13 16:18:28 +03:00
2021-04-11 13:54:13 +02:00
2021-06-01 16:22:14 +02:00
2021-07-16 15:24:05 +02:00
2021-02-26 12:51:53 +01:00
2021-08-18 09:58:27 +00:00
2021-07-29 19:45:54 +02:00
2021-08-06 13:27:56 +03:00
2021-05-07 00:53:31 +03:00
2021-02-11 13:50:08 +01:00
2021-08-01 22:23:40 +03:00
2021-08-26 10:08:52 +03:00
2021-08-23 11:51:30 +00:00
2021-08-24 12:28:31 +02:00
2021-05-18 22:20:12 +03:00
2021-08-03 00:17:33 +03:00
2021-06-29 17:00:31 +03:00
2021-08-10 19:52:08 +03:00
2021-08-24 12:32:30 +03:00
2021-02-11 13:50:09 +01:00
2021-04-23 17:58:16 +02:00
2021-08-20 12:27:43 +03:00
2021-02-20 10:59:22 +03:00
2021-04-21 16:18:21 +03:00
2021-05-11 16:26:04 +02:00
2021-05-18 22:20:12 +03:00
2021-05-21 12:49:58 +03:00
2021-07-02 15:39:29 +03:00
2021-02-18 14:44:44 +03:00
2021-07-20 10:33:52 +03:00
2021-08-23 14:29:12 +03:00
2021-02-10 13:02:06 +03:00
2021-08-04 16:23:37 +03:00
2021-05-20 13:46:27 +03:00
2021-05-27 12:24:22 +02:00
2021-08-25 21:53:23 +00:00
2021-02-10 13:02:06 +03:00
2021-08-23 14:29:12 +03:00
2021-08-04 16:23:38 +03:00
2021-05-18 22:20:12 +03:00
2021-08-01 22:23:40 +03:00
2021-04-27 18:39:10 +03:00
2021-08-19 15:25:51 +03:00
2021-02-18 14:44:44 +03:00
2021-07-30 19:53:33 +02:00
2021-08-01 22:23:40 +03:00
2021-07-02 15:39:29 +03:00
2021-06-22 21:13:56 +03:00
2021-06-16 14:27:14 +05:00
2021-08-23 12:49:45 +03:00
2021-02-09 16:04:39 +03:00
2021-07-02 15:39:29 +03:00
2021-08-09 22:34:44 +02:00
2021-08-12 13:51:33 +02:00
2021-05-18 22:20:12 +03:00
2021-06-26 06:10:16 +02:00
2021-07-02 15:39:29 +03:00
2021-07-17 09:10:19 +03:00
2021-07-29 21:41:50 +03:00
2021-08-17 21:38:01 +03:00
2021-02-18 14:44:44 +03:00
2021-05-18 22:20:12 +03:00
2021-03-31 15:57:03 +03:00
2021-06-07 15:25:55 +03:00
2021-08-23 16:20:41 +03:00
2021-07-29 19:45:54 +02:00
2021-07-13 10:31:23 +03:00
2021-07-02 15:39:29 +03:00
2021-07-16 13:26:36 +00:00