Kirill Rakhman
69a7bf7f68
[FIR] Add equality constraint from expected type for some synthetic function calls
...
This fixes some cases where we infer some type variable inside one
of the branches to Nothing instead of the expected type because Nothing
appeared in some other branch.
Specifically, we add an equality instead of a subtype constraint during
completion of calls to synthetic functions for if/when, try and !!.
We don't do it when the call contains a (possibly nested) elvis or is
inside the RHS of an assignment.
Otherwise, we would prevent some smart-casts.
#KT-65882 Fixed
2024-03-05 17:38:59 +00:00
..
2023-10-24 11:44:21 +00:00
2023-10-19 09:27:45 +00:00
2023-07-26 06:09:15 +00:00
2020-12-16 19:52:30 +03:00
2023-08-04 11:20:40 +00:00
2023-12-08 14:32:22 +00:00
2024-01-24 16:20:38 +00:00
2024-03-05 17:38:59 +00:00
2023-02-06 08:09:56 +00:00
2024-01-16 09:57:53 +00:00
2023-03-09 08:32:02 +00:00
2023-09-08 07:11:48 +00:00
2024-02-15 16:10:13 +00:00
2023-12-22 16:57:07 +00:00
2024-01-19 11:40:39 +00:00
2024-01-11 09:58:04 +00:00
2023-08-04 11:20:40 +00:00
2024-02-12 08:47:10 +00:00
2023-08-18 13:31:04 +00:00
2023-08-04 11:20:40 +00:00
2023-08-18 13:31:04 +00:00
2023-07-20 12:50:06 +00:00
2024-02-15 16:10:13 +00:00
2024-01-23 23:16:00 +00:00
2024-02-15 16:10:13 +00:00
2023-08-18 13:31:04 +00:00
2024-01-17 16:51:48 +00:00
2023-02-06 08:09:56 +00:00
2024-02-26 08:59:22 +00:00
2024-02-21 12:04:11 +00:00
2024-02-21 07:47:15 +00:00
2024-03-05 17:38:59 +00:00
2023-06-21 13:08:00 +00:00
2024-01-16 09:57:53 +00:00
2023-02-14 17:08:55 +00:00
2024-02-12 08:47:10 +00:00
2023-12-22 16:57:07 +00:00
2023-09-11 14:23:55 +00:00
2022-01-11 22:23:57 +00:00
2023-06-21 13:08:00 +00:00
2023-06-08 14:13:30 +00:00
2023-06-12 16:41:26 +00:00
2023-06-12 16:41:26 +00:00
2023-06-12 16:41:26 +00:00
2023-06-12 16:41:26 +00:00
2023-06-14 09:25:26 +00:00
2023-06-14 09:25:26 +00:00
2023-10-31 13:41:56 +00:00
2023-10-31 13:41:56 +00:00
2022-08-12 09:35:27 +00:00
2023-04-19 20:12:38 +00:00
2022-06-27 08:11:31 +00:00
2022-06-27 08:11:31 +00:00
2021-09-13 13:53:12 +03:00
2021-11-17 15:26:38 +03:00
2021-10-12 17:26:34 +03:00
2021-02-19 18:24:46 +03:00
2021-09-17 01:59:06 +03:00
2023-01-13 21:32:51 +00:00
2020-12-16 19:52:25 +03:00
2021-08-30 16:24:44 +03:00
2021-01-21 12:02:01 +03:00
2021-07-30 16:58:07 +00:00
2023-08-08 11:00:04 +00:00
2022-11-22 18:25:30 +01:00
2021-05-20 12:22:20 +03:00
2023-12-14 16:40:27 +00:00
2021-07-23 12:20:39 +03:00
2021-07-23 12:20:39 +03:00
2021-10-12 17:26:34 +03:00
2020-12-16 19:52:30 +03:00
2022-08-12 09:35:27 +00:00
2021-04-06 12:30:34 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2021-02-12 13:36:41 +03:00
2021-07-19 13:40:28 +03:00
2021-01-22 18:11:57 +03:00
2020-12-16 19:52:30 +03:00
2021-04-06 12:30:34 +03:00
2021-04-13 21:36:33 +03:00
2022-05-19 16:53:59 +00:00
2021-03-24 17:48:39 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:25 +03:00
2022-12-14 21:46:41 +00:00
2023-01-13 21:32:51 +00:00
2020-12-16 19:52:25 +03:00
2023-05-10 11:48:58 +00:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2023-08-31 12:50:52 +00:00
2022-06-02 13:47:29 +00:00
2022-06-02 13:47:29 +00:00
2024-02-21 12:25:22 +00:00
2022-12-14 21:46:41 +00:00
2023-10-27 13:27:35 +00:00
2022-08-12 09:35:27 +00:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2021-06-03 20:41:58 +03:00
2023-03-31 12:54:29 +00:00
2023-09-04 08:05:07 +00:00
2023-09-04 08:05:07 +00:00
2023-03-21 20:24:57 +00:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2023-09-22 10:48:31 +00:00
2023-09-22 10:48:31 +00:00
2020-12-16 19:52:25 +03:00
2021-04-06 12:30:34 +03:00
2020-12-16 19:52:25 +03:00
2021-07-19 13:40:28 +03:00
2021-06-21 18:45:38 +03:00
2021-04-23 17:29:34 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2022-04-21 19:23:20 +00:00
2022-04-21 19:23:20 +00:00
2020-12-16 19:52:25 +03:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2022-01-11 13:56:17 +00:00
2022-01-11 13:56:17 +00:00
2021-02-09 15:20:34 +03:00
2023-05-26 11:29:13 +00:00
2022-12-14 21:46:41 +00:00
2024-02-21 20:24:13 +00:00
2022-05-12 21:22:22 +04:00
2022-05-12 21:22:22 +04:00
2022-05-12 21:22:22 +04:00
2022-05-12 21:22:22 +04:00
2022-05-12 21:22:22 +04:00
2022-05-12 21:22:22 +04:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:25 +03:00
2021-01-27 19:46:05 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2022-06-29 16:50:05 +00:00
2020-12-16 19:52:30 +03:00
2023-06-21 13:08:00 +00:00
2021-09-06 13:11:02 +03:00
2023-01-13 21:32:51 +00:00
2020-12-16 19:52:25 +03:00
2022-11-15 09:02:33 +02:00
2022-11-15 09:02:33 +02:00
2023-01-26 14:12:48 +00:00
2023-02-15 08:13:42 +00:00
2024-01-29 07:59:13 +00:00
2024-01-29 07:59:13 +00:00
2021-04-06 12:30:34 +03:00
2021-04-06 12:30:41 +03:00
2021-04-06 12:30:41 +03:00
2022-12-15 12:12:19 +00:00
2023-01-13 21:32:51 +00:00
2021-04-06 12:30:34 +03:00
2021-11-12 15:20:45 +03:00
2022-12-15 12:12:19 +00:00
2023-04-19 20:12:38 +00:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2022-12-14 21:46:41 +00:00
2020-12-16 19:52:30 +03:00
2022-09-07 12:34:26 +00:00
2022-09-07 12:34:26 +00:00
2020-12-16 19:52:25 +03:00
2021-04-29 22:31:38 +03:00
2021-02-19 18:24:46 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2021-10-12 17:26:34 +03:00
2020-12-16 19:52:30 +03:00
2023-08-18 13:31:04 +00:00
2020-12-16 19:52:30 +03:00
2022-12-14 21:46:41 +00:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2021-02-10 12:29:34 +03:00
2021-01-22 18:11:57 +03:00
2020-12-16 19:52:30 +03:00
2023-08-18 13:31:04 +00:00
2023-08-18 13:31:04 +00:00
2023-07-12 11:41:33 +00:00
2020-12-16 19:52:30 +03:00
2023-10-30 16:28:10 +00:00
2023-10-30 16:28:10 +00:00
2022-12-15 12:12:19 +00:00
2021-05-20 13:46:34 +03:00
2023-11-30 08:39:04 +00:00
2021-02-12 13:36:41 +03:00
2022-03-15 13:08:18 +00:00
2022-03-15 13:08:18 +00:00
2022-08-04 22:56:07 +02:00
2022-08-04 22:56:08 +02:00
2023-02-14 17:08:55 +00:00
2023-02-14 17:08:55 +00:00
2021-02-12 13:36:41 +03:00
2023-05-10 11:48:58 +00:00
2021-04-05 16:17:34 +03:00
2021-05-17 22:33:18 +03:00
2022-12-14 21:46:41 +00:00
2021-03-04 17:56:29 +03:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2023-06-21 13:08:00 +00:00
2020-12-16 19:52:30 +03:00
2022-12-14 21:46:41 +00:00
2021-04-05 15:54:57 +03:00
2021-04-05 15:54:57 +03:00
2020-12-16 19:52:25 +03:00
2023-08-18 13:31:04 +00:00
2021-04-20 18:13:03 +03:00
2023-05-05 09:34:23 +00:00
2022-03-15 13:08:18 +00:00
2022-06-29 16:50:05 +00:00
2021-04-13 21:36:41 +03:00
2023-02-06 08:09:56 +00:00
2021-06-07 15:25:47 +03:00
2021-10-12 17:26:34 +03:00
2020-12-16 19:52:30 +03:00
2020-12-16 19:52:25 +03:00
2023-03-29 10:45:40 +00:00
2022-11-08 14:51:33 +01:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2022-11-16 22:25:02 +00:00
2022-11-16 22:25:02 +00:00
2020-12-16 19:52:25 +03:00
2023-03-28 13:20:53 +00:00
2021-10-05 19:37:53 +03:00
2021-04-06 12:30:34 +03:00
2021-05-05 18:20:51 +03:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-01-31 11:21:17 +00:00
2023-03-21 20:24:57 +00:00
2023-06-21 13:08:00 +00:00
2022-03-15 13:21:03 +00:00
2021-04-06 12:30:34 +03:00
2020-12-16 19:52:30 +03:00
2023-12-22 16:57:07 +00:00
2023-03-31 15:01:50 +00:00
2023-12-22 16:57:07 +00:00
2023-12-22 16:57:07 +00:00
2020-12-16 19:52:25 +03:00
2020-12-16 19:52:30 +03:00
2021-02-09 16:04:39 +03:00
2021-02-09 16:04:39 +03:00