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
..
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2021-04-12 23:49:55 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2023-09-22 13:49:59 +00:00
2020-03-05 09:39:40 +03:00
2017-08-23 15:53:50 +03:00
2021-04-12 23:49:55 +03:00
2021-03-29 16:12:29 +03:00
2018-10-25 19:10:39 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2023-01-13 21:32:51 +00:00
2018-10-25 19:10:39 +03:00
2020-08-02 18:19:45 +03:00
2022-03-23 21:13:33 +00:00
2019-12-12 16:11:46 +03:00
2016-10-13 17:17:05 +03:00
2022-03-23 21:13:33 +00:00
2020-03-05 09:39:40 +03:00
2023-03-02 10:23:38 +00:00
2023-07-20 07:29:18 +00:00
2021-05-25 13:28:27 +03:00
2022-06-17 23:26:16 +00:00
2022-01-17 21:27:14 +03:00
2022-03-23 21:13:33 +00:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2021-04-14 18:11:14 +03:00
2022-03-23 21:13:33 +00:00
2021-04-14 18:11:14 +03:00
2022-03-23 21:13:33 +00:00
2021-04-14 18:11:14 +03:00
2022-03-23 21:13:33 +00:00
2022-11-16 22:25:02 +00:00
2021-05-25 13:28:27 +03:00
2015-09-08 02:04:32 +03:00
2021-04-14 18:11:14 +03:00
2022-03-23 21:13:33 +00:00
2021-04-14 18:11:14 +03:00
2022-03-23 21:13:33 +00:00
2021-08-10 15:09:25 +00:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2016-01-22 05:54:38 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2018-10-25 19:10:39 +03:00
2022-02-25 11:46:27 +00:00
2015-09-08 02:04:32 +03:00
2023-09-19 13:42:54 +00:00
2022-01-17 21:27:14 +03:00
2022-03-23 21:13:33 +00:00
2022-02-10 21:20:47 +00:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2023-03-02 10:23:38 +00:00
2021-03-29 16:12:29 +03:00
2023-03-02 10:23:38 +00:00
2020-03-05 09:39:40 +03:00
2018-08-06 13:43:32 +02:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2022-03-23 21:13:33 +00:00
2021-08-06 11:49:34 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2018-10-25 19:10:39 +03:00
2021-03-29 16:12:29 +03:00
2019-12-12 16:11:46 +03:00
2015-05-12 19:43:17 +02:00
2015-09-08 02:04:32 +03:00
2019-12-12 16:11:46 +03:00
2014-10-01 18:52:52 +04:00
2015-09-08 02:04:32 +03:00
2023-07-26 06:09:15 +00:00
2021-03-29 16:12:29 +03:00
2023-09-22 10:48:31 +00:00
2021-05-25 13:28:26 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2016-01-22 05:54:38 +03:00
2021-05-25 13:28:26 +03:00
2015-09-25 19:20:20 +03:00
2021-03-29 16:12:29 +03:00
2016-01-22 05:54:38 +03:00
2024-02-21 20:24:13 +00:00
2024-02-21 20:24:13 +00:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2021-11-12 15:20:45 +03:00
2015-09-08 02:04:32 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2015-12-14 04:29:18 +03:00
2019-12-12 16:11:46 +03:00
2014-10-01 18:52:52 +04:00
2016-01-22 05:54:38 +03:00
2023-05-05 09:34:24 +00:00
2022-01-17 21:27:14 +03:00
2022-03-23 21:13:33 +00:00
2021-11-24 23:13:41 +03:00
2021-11-24 23:13:41 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2022-11-22 15:46:19 +00:00
2021-05-25 13:28:26 +03:00
2021-06-07 15:25:45 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2021-11-12 15:20:43 +03:00
2016-10-11 23:38:54 +03:00
2021-11-12 15:20:43 +03:00
2015-09-08 02:04:32 +03:00
2021-07-19 13:40:28 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2021-07-19 13:40:28 +03:00
2022-12-20 08:12:09 +00:00
2012-07-10 14:48:11 +04:00
2015-09-08 02:04:32 +03:00
2020-06-19 15:53:09 +03:00
2021-03-29 16:12:29 +03:00
2021-07-19 13:40:28 +03:00
2015-09-08 02:04:32 +03:00
2021-03-29 16:12:29 +03:00
2016-01-22 05:54:38 +03:00
2020-03-05 09:39:40 +03:00
2016-01-22 05:54:38 +03:00
2021-11-24 23:13:41 +03:00
2019-12-12 16:11:46 +03:00
2018-10-25 19:10:39 +03:00
2018-10-25 19:10:39 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2016-01-22 05:54:38 +03:00
2021-08-25 21:53:23 +00:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2023-04-19 20:12:38 +00:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2017-06-24 17:26:01 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2015-09-25 19:20:20 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2021-08-18 16:03:01 +03:00
2018-10-25 19:10:39 +03:00
2023-09-01 09:30:28 +03:00
2016-12-09 16:59:24 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2016-06-03 09:45:37 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2018-08-06 13:43:32 +02:00
2022-02-25 11:46:27 +00:00
2015-09-08 02:04:32 +03:00
2021-11-24 23:13:41 +03:00
2018-10-25 19:10:39 +03:00
2020-03-05 09:39:40 +03:00
2020-03-05 09:39:40 +03:00
2018-10-25 19:10:39 +03:00
2021-12-01 23:45:18 +03:00
2018-10-25 19:10:39 +03:00
2018-10-25 19:10:39 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2024-01-11 10:32:12 +00:00
2021-05-25 13:28:27 +03:00
2018-10-25 19:10:39 +03:00
2023-04-19 20:12:38 +00:00
2015-09-08 02:04:32 +03:00
2021-04-02 14:36:14 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2018-10-25 19:10:39 +03:00
2023-04-30 16:12:54 +00:00
2023-04-30 16:12:54 +00:00
2018-10-25 19:10:39 +03:00
2021-04-30 17:59:45 +03:00
2015-11-18 16:27:21 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2023-04-19 20:12:38 +00:00
2015-09-08 02:04:32 +03:00
2021-02-03 12:07:36 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2023-03-02 10:23:38 +00:00
2023-06-16 16:26:50 +00:00
2023-06-16 16:26:50 +00:00
2015-09-08 02:04:32 +03:00
2019-12-12 16:11:46 +03:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00
2023-11-28 15:37:09 +00:00
2022-03-23 21:13:33 +00:00
2021-07-13 10:35:01 +03:00
2017-08-29 18:01:36 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:26 +03:00
2016-01-29 17:23:40 +03:00
2023-07-31 17:38:46 +00:00
2023-01-02 14:03:42 +01:00
2019-08-15 13:01:39 +03:00
2016-07-13 13:42:39 +03:00
2023-08-11 21:13:58 +00:00
2016-01-29 10:55:22 +03:00
2020-01-30 17:12:50 +03:00
2020-12-16 19:52:25 +03:00
2016-01-25 19:13:32 +03:00
2020-03-05 09:39:40 +03:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2021-03-04 17:56:29 +03:00
2023-10-19 09:27:45 +00:00
2022-09-30 21:39:20 +03:00
2018-10-25 19:10:39 +03:00
2019-12-12 16:11:46 +03:00
2016-01-28 19:30:20 +03:00
2016-01-28 19:30:20 +03:00
2023-08-15 08:04:19 +00:00
2023-08-15 08:04:19 +00:00
2022-03-23 21:13:33 +00:00
2016-01-29 12:57:52 +03:00
2023-01-13 21:32:51 +00:00
2019-12-20 12:06:20 +03:00
2023-01-13 21:32:51 +00:00
2023-01-13 21:32:51 +00:00
2021-05-25 13:28:26 +03:00
2021-05-25 13:28:27 +03:00
2016-09-05 13:13:57 +03:00
2020-03-05 09:39:40 +03:00
2016-09-24 11:26:56 +03:00
2020-03-05 09:39:40 +03:00
2021-03-29 16:12:29 +03:00
2017-02-09 15:42:30 +03:00
2020-03-05 09:39:40 +03:00
2017-05-05 21:30:35 +03:00
2023-09-22 13:49:59 +00:00
2021-05-20 13:46:32 +03:00
2019-11-18 10:25:41 +03:00
2020-03-05 09:39:40 +03:00
2023-08-04 11:20:39 +00:00
2022-07-22 16:03:52 +00:00
2023-03-02 10:23:38 +00:00
2024-01-11 10:32:12 +00:00
2022-07-22 16:03:52 +00:00
2022-03-23 21:13:33 +00:00
2021-04-12 23:49:55 +03:00
2019-11-18 10:25:41 +03:00
2019-11-18 10:25:41 +03:00
2022-07-22 16:03:52 +00:00
2022-07-22 16:03:52 +00:00
2022-07-22 16:03:52 +00:00
2022-07-22 16:03:52 +00:00
2020-01-27 10:10:44 +01:00
2020-03-05 09:39:40 +03:00
2019-08-15 13:01:39 +03:00
2022-07-22 16:03:52 +00:00
2020-03-12 08:02:45 +01:00
2022-07-22 16:03:52 +00:00
2020-03-12 08:02:45 +01:00
2022-07-22 16:03:52 +00:00
2022-07-22 16:03:52 +00:00
2020-01-23 19:12:01 +03:00
2022-07-22 16:03:52 +00:00
2020-03-12 08:02:45 +01:00
2023-08-23 09:40:45 +00:00
2023-08-23 09:40:44 +00:00
2021-10-08 18:52:21 +03:00
2021-10-08 18:52:21 +03:00
2020-08-24 11:06:10 +03:00
2015-11-06 12:17:07 +03:00
2021-07-15 19:02:58 +03:00
2022-03-23 21:13:33 +00:00
2022-04-05 15:50:43 +00:00
2021-05-25 13:28:26 +03:00
2015-09-08 02:04:32 +03:00
2020-03-05 09:39:40 +03:00
2015-09-08 02:04:32 +03:00
2024-02-14 09:57:12 +00:00
2021-05-28 15:36:23 +03:00
2020-12-08 12:55:25 +03:00
2021-11-24 23:13:41 +03:00
2015-09-08 02:04:32 +03:00
2022-02-25 11:46:27 +00:00
2022-02-25 11:46:27 +00:00
2022-07-22 16:03:52 +00:00
2022-07-22 16:03:52 +00:00
2019-12-27 18:40:42 +03:00
2024-03-05 17:38:59 +00:00
2024-01-30 19:58:53 +00:00
2021-08-10 19:36:43 +03:00
2020-02-14 11:41:30 +01:00
2016-10-11 23:38:49 +03:00
2023-05-10 11:48:58 +00:00
2021-03-29 16:12:29 +03:00
2015-09-08 02:04:32 +03:00