metagn
037f87d904
top-down type inference, implements rfc 149 ( #20091 )
...
* micro implementation of rfc 149
refs https://github.com/nim-lang/RFCs/issues/149
* number/array/seq literals, more statements
* try fix number literal alias issue
* renew expectedType with if/case/try branch types
* fix (nerf) index type handling and float typed int
* use typeAllowed
* tweaks + const test (tested locally) [skip ci]
* fill out more of the checklist
* more literals, change @ order, type conversions
Not copying the full call tree before the typedesc call check
in `semIndirectOp` is also a small performance improvement.
* disable self-conversion warning
* revert type conversions (maybe separate op later)
* deal with CI for now (seems unrelated), try enums
* workaround CI different way
* proper fix
* again
* see sizes
* lol
* overload selection, simplify int literal -> float
* range, new @ solution, try use fitNode for nil
* use new magic
* try fix ranges, new magic, deal with #20193
* add documentation, support templates
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
(cherry picked from commit 0014b9c48e )
2023-05-11 15:12:38 +02:00
..
2022-01-20 18:06:35 +01:00
2022-05-22 18:20:25 +02:00
2022-05-22 18:20:25 +02:00
2019-04-05 15:27:04 +02:00
2021-04-02 13:11:03 +02:00
2021-06-19 11:24:46 -07:00
2020-11-20 08:07:51 +01:00
2017-09-16 19:09:44 +01:00
2020-03-30 13:45:32 +02:00
2018-11-26 10:28:44 +01:00
2018-10-28 13:34:57 +01:00
2020-10-29 18:12:14 +01:00
2018-12-11 21:23:21 +01:00
2020-11-13 16:15:13 +08:00
2020-12-14 10:58:29 +01:00
2020-12-28 14:13:21 +01:00
2020-11-05 14:00:49 +01:00
2022-05-22 18:20:25 +02:00
2021-04-21 19:47:01 +02:00
2021-05-29 12:44:39 -07:00
2022-05-22 18:20:25 +02:00
2022-05-22 18:20:25 +02:00
2022-05-22 18:20:25 +02:00
2021-01-07 19:16:26 +01:00
2020-12-27 19:46:21 +01:00
2021-02-18 08:26:50 +01:00
2021-01-05 17:50:15 +01:00
2021-02-24 10:14:19 +01:00
2020-12-28 14:13:21 +01:00
2021-04-04 13:47:28 -07:00
2021-01-05 17:52:26 +01:00
2022-08-23 13:31:33 +02:00
2021-08-11 12:17:17 +02:00
2020-12-17 13:41:05 +01:00
2023-01-22 11:58:31 +01:00
2020-11-28 11:59:08 -08:00
2020-12-28 14:13:21 +01:00
2021-04-29 09:51:54 +02:00
2020-12-28 14:13:21 +01:00
2021-03-10 08:08:24 -08:00
2020-06-16 11:43:48 +02:00
2020-06-15 13:27:33 +02:00
2020-06-15 13:27:33 +02:00
2021-01-05 20:51:51 +01:00
2021-02-17 19:27:48 +01:00
2021-04-02 13:11:03 +02:00
2020-04-24 09:18:44 +02:00
2021-07-27 09:36:19 +02:00
2021-05-31 13:39:19 +02:00
2021-07-17 07:54:47 +02:00
2021-10-04 21:28:13 +02:00
2021-02-15 13:57:15 +01:00
2021-05-06 10:58:01 +02:00
2020-12-28 14:13:21 +01:00
2020-03-20 17:11:39 +01:00
2020-03-20 17:11:39 +01:00
2021-02-08 13:54:03 +01:00
2021-06-30 10:22:38 -07:00
2022-05-22 18:20:25 +02:00
2020-12-28 14:13:21 +01:00
2021-06-19 11:24:46 -07:00
2020-11-20 08:07:51 +01:00
2023-01-27 11:43:37 +01:00
2021-03-26 13:05:51 +01:00
2021-04-13 09:33:28 +02:00
2021-12-14 18:19:08 +01:00
2018-11-23 11:58:28 +01:00
2018-12-11 21:23:21 +01:00
2022-05-22 18:20:25 +02:00
2018-11-23 11:58:28 +01:00
2023-04-26 15:12:03 +02:00
2022-01-11 08:25:58 +01:00
2021-04-06 16:21:58 +02:00
2022-03-24 13:25:20 +01:00
2023-04-24 17:25:37 +02:00
2021-02-24 22:17:16 +00:00
2021-08-19 11:35:40 +02:00
2020-12-28 14:13:21 +01:00
2018-12-11 21:23:21 +01:00
2023-02-16 16:37:44 +01:00
2018-11-23 11:58:28 +01:00
2021-04-24 07:54:31 +02:00
2018-12-11 21:23:21 +01:00
2020-12-29 13:27:08 +01:00
2018-11-23 11:58:28 +01:00
2021-07-05 10:12:58 -07:00
2020-03-25 19:15:34 +01:00
2021-06-07 13:57:42 +02:00
2020-11-23 19:53:57 +01:00
2021-02-22 11:09:25 +01:00
2021-05-31 13:39:19 +02:00
2022-11-16 16:16:26 +01:00
2022-05-22 18:20:25 +02:00
2020-06-15 13:27:33 +02:00
2021-03-27 10:22:42 +01:00
2022-05-22 18:20:25 +02:00
2020-12-27 14:45:57 +01:00
2021-01-07 09:38:31 +01:00
2021-07-16 15:50:02 +02:00
2021-02-24 22:17:16 +00:00
2019-05-16 21:06:04 +02:00
2021-08-12 16:50:08 +02:00
2021-09-29 09:32:39 +02:00
2022-05-22 18:20:25 +02:00
2021-03-07 12:08:41 +01:00
2020-11-13 14:12:51 +01:00
2021-03-28 09:57:40 -07:00
2020-11-24 19:06:41 +01:00
2022-05-25 16:33:37 +02:00
2022-05-22 18:20:25 +02:00
2020-12-27 14:45:57 +01:00
2023-02-16 08:47:00 +01:00
2020-12-28 14:13:21 +01:00
2022-09-19 15:08:45 +02:00
2018-11-23 11:58:28 +01:00
2021-02-20 18:08:13 +01:00
2022-05-19 13:47:19 +02:00
2021-01-22 19:51:11 +01:00
2021-09-02 14:12:14 +02:00
2021-02-06 17:33:11 +01:00
2021-12-20 13:10:51 +01:00
2018-12-11 21:23:21 +01:00
2021-03-29 10:50:58 +02:00
2022-05-25 16:33:37 +02:00
2020-10-18 12:57:13 -04:00
2021-02-22 19:58:37 +01:00
2022-08-15 18:38:17 -04:00
2022-05-22 18:20:25 +02:00
2023-05-11 15:12:38 +02:00
2021-03-08 10:39:39 +01:00
2022-05-22 18:20:25 +02:00
2021-06-16 11:31:20 +02:00
2020-12-28 14:13:21 +01:00
2021-08-11 12:17:17 +02:00
2021-01-07 16:09:57 +01:00
2018-11-23 11:58:28 +01:00
2021-08-12 09:21:01 -07:00
2018-12-11 21:23:21 +01:00
2022-05-22 18:20:25 +02:00
2020-10-05 12:00:06 +02:00
2020-05-19 09:41:31 +02:00
2021-08-23 00:13:39 +02:00
2020-04-28 19:56:01 +02:00
2021-09-02 12:10:14 +02:00
2022-05-22 18:20:25 +02:00
2022-07-15 09:43:48 +02:00
2021-04-12 07:32:37 +02:00
2022-10-06 18:21:51 +02:00
2021-02-24 13:47:36 +01:00
2020-11-24 19:06:41 +01:00
2022-05-25 08:08:00 +02:00
2023-05-03 18:30:43 +02:00
2021-07-19 12:43:31 +02:00
2020-12-28 14:13:21 +01:00
2020-08-09 14:12:53 +02:00
2020-06-10 14:10:57 +02:00
2023-04-24 17:22:22 +02:00
2023-04-26 15:05:56 +02:00
2020-12-28 14:13:21 +01:00
2021-03-15 10:21:25 +01:00
2022-08-23 21:32:47 +02:00
2020-12-28 14:13:21 +01:00
2021-04-09 11:51:51 +02:00
2021-07-18 11:04:19 +02:00
2020-07-12 03:31:03 -04:00
2020-11-10 09:23:58 +08:00
2020-10-13 17:39:32 +01:00
2021-05-08 17:13:47 +02:00
2021-03-08 14:37:52 +01:00
2022-05-22 18:20:25 +02:00
2022-05-22 18:20:25 +02:00
2022-05-22 18:20:25 +02:00
2021-03-29 14:22:29 +02:00
2022-05-22 18:20:25 +02:00
2020-11-27 12:41:22 +08:00
2020-07-14 13:14:32 +02:00
2021-02-24 21:02:33 +01:00
2018-05-28 05:24:04 +03:00
2020-12-27 09:16:53 +01:00
2020-02-11 21:33:06 +01:00
2021-05-09 23:33:31 +02:00
2021-04-17 11:48:22 +02:00
2021-02-24 13:44:10 +01:00
2022-05-22 18:20:25 +02:00
2021-06-24 11:55:31 +02:00
2018-04-30 11:16:56 +02:00
2020-11-27 20:47:49 +01:00
2020-11-27 20:47:49 +01:00
2021-07-08 10:21:30 +08:00
2020-12-28 14:13:21 +01:00
2021-09-02 07:41:14 +02:00
2021-05-15 06:50:39 +02:00