metagn
e39d152b89
handle ranges in annotateType for set constructors ( #24737 )
...
fixes #24736
The VM can produce integer nodes with no types as set elements, which
are later reannotated in `semmacrosanity.annotateType`. However the case
of ranges was not handled properly. Not sure why this is a regression,
probably unrelated but will have to see the bisect result to make sure.
Note. Originally tried to fix this in `opcInclRange`, generated for and
only for range expressions in set constructors, this seems to add the
range node directly to the set node without checking if it has overlap
with the existing elements by calling `nimsets` so an expression like
`{cctNone, cctNone..cctHeader}` can produce `{0, 0..5}`. Doesn't seem to
cause problems but `opcIncl` for single elements does check for overlap.
Something else to note is that integer nodes produced by `nimsets` have
proper types, so another option instead of relying on semmacrosanity to
fix this would be to make `opcIncl` and `opcInclRange` call `nimsets` to
add to the set node, but this might lose performance.
2025-02-28 17:23:19 +03:00
..
2018-08-13 13:02:52 +02:00
2020-05-06 17:16:54 +02:00
2023-06-29 11:21:22 +02:00
2018-12-11 21:23:21 +01:00
2023-04-21 15:37:58 +02:00
2020-11-08 11:02:12 +08:00
2021-02-23 09:02:06 +01:00
2022-11-06 22:25:55 +08:00
2023-08-11 18:50:31 +08:00
2023-01-31 19:22:10 +01:00
2022-06-13 09:01:40 +02:00
2022-11-07 14:36:43 +01:00
2023-05-06 18:04:08 +02:00
2020-12-28 14:13:21 +01:00
2019-11-28 09:56:02 +01:00
2019-11-28 09:56:02 +01:00
2017-09-30 21:35:30 +02:00
2017-07-25 09:28:23 +02:00
2019-02-01 12:12:10 +01:00
2024-11-16 10:43:58 +01:00
2021-05-08 00:27:06 +02:00
2018-10-09 19:54:12 +02:00
2020-11-02 10:58:14 +01:00
2023-06-06 06:54:07 +02:00
2022-01-16 21:10:35 +01:00
2019-07-12 15:37:54 +02:00
2018-12-31 14:41:24 +01:00
2021-04-04 13:47:28 -07:00
2018-08-13 13:02:52 +02:00
2024-12-06 20:19:57 +08:00
2024-12-09 08:11:47 +01:00
2024-10-03 19:35:53 +02:00
2020-11-24 16:09:00 +01:00
2024-10-26 20:49:07 +02:00
2023-09-01 08:59:48 +02:00
2024-09-09 11:29:30 +02:00
2024-09-09 11:29:30 +02:00
2025-02-14 20:54:17 +01:00
2025-02-14 20:54:17 +01:00
2025-02-14 20:54:17 +01:00
2025-02-14 20:54:17 +01:00
2018-11-23 13:16:45 +01:00
2024-07-09 12:59:21 +02:00
2024-09-17 06:29:49 +02:00
2017-02-05 08:51:43 +01:00
2019-09-28 19:50:20 +02:00
2019-08-02 22:59:04 +01:00
2019-05-21 21:31:40 +02:00
2020-06-17 15:25:02 +02:00
2019-12-10 19:04:02 +01:00
2023-06-06 06:54:07 +02:00
2022-08-23 19:28:51 +02:00
2018-12-11 21:23:22 +01:00
2024-10-06 19:36:46 +02:00
2020-06-17 15:25:02 +02:00
2018-12-18 09:07:12 +01:00
2018-11-23 11:58:28 +01:00
2018-11-23 11:58:28 +01:00
2024-12-06 19:00:59 +08:00
2019-07-12 12:15:30 +02:00
2022-06-22 08:43:58 +02:00
2019-12-10 19:04:02 +01:00
2020-01-23 10:53:30 +01:00
2023-02-25 00:53:04 +08:00
2019-11-28 09:56:02 +01:00
2022-08-23 19:28:51 +02:00
2024-09-04 09:13:04 +02:00
2024-09-04 09:13:04 +02:00
2018-06-26 21:25:27 +02:00
2018-10-27 14:10:05 +01:00
2023-06-06 06:54:07 +02:00
2023-06-06 06:54:07 +02:00
2023-09-01 15:38:25 +02:00
2025-01-22 14:05:57 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2020-12-28 14:13:21 +01:00
2022-08-23 19:28:51 +02:00
2020-04-06 00:24:35 +02:00
2022-08-23 19:28:51 +02:00
2022-08-23 19:28:51 +02:00
2023-06-29 11:21:22 +02:00
2018-08-13 23:16:03 +02:00
2018-12-08 14:33:42 -08:00
2025-02-28 17:23:19 +03:00
2023-05-02 10:49:17 +02:00
2018-11-23 13:16:45 +01:00
2020-05-07 22:07:08 +02:00
2018-11-23 11:58:28 +01:00
2019-05-21 21:31:40 +02:00
2021-03-01 07:51:12 -08:00
2020-12-28 14:13:21 +01:00
2020-11-05 14:00:08 +01:00
2023-06-25 00:01:08 +02:00
2024-01-18 14:50:36 +01:00
2023-08-29 14:59:49 +02:00
2022-08-23 19:28:51 +02:00
2024-09-09 11:22:37 +02:00
2021-05-02 00:26:41 +02:00
2024-08-11 16:13:26 +02:00
2022-08-23 19:28:51 +02:00
2020-12-28 14:13:21 +01:00
2017-07-25 09:28:23 +02:00
2022-08-23 19:28:51 +02:00
2022-09-28 15:28:45 -04:00