mlugg
e9bd2d45d4
Sema: rewrite semantic analysis of function calls
...
This rewrite improves some error messages, hugely simplifies the logic,
and fixes several bugs. One of these bugs is technically a new rule
which Andrew and I agreed on: if a parameter has a comptime-only type
but is not declared `comptime`, then the corresponding call argument
should not be *evaluated* at comptime; only resolved. Implementing this
required changing how function types work a little, which in turn
required allowing a new kind of function coercion for some generic use
cases: function coercions are now allowed to implicitly *remove*
`comptime` annotations from parameters with comptime-only types. This is
okay because removing the annotation affects only the call site.
Resolves : #22262
2025-01-09 06:46:47 +00:00
..
2024-01-06 16:49:41 -08:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2024-08-11 07:29:41 +01:00
2024-08-28 08:39:59 +01:00
2024-12-28 02:15:00 +00:00
2025-01-06 16:31:32 +01:00
2024-06-13 02:19:40 -07:00
2024-10-31 20:42:53 +00:00
2024-05-11 02:17:24 -07:00
2024-08-28 08:39:59 +01:00
2024-11-04 08:29:42 +01:00
2023-11-19 09:57:03 +00:00
2024-10-22 11:39:29 +02:00
2024-08-28 08:39:59 +01:00
2024-11-04 08:29:42 +01:00
2024-06-16 11:53:33 +02:00
2024-05-11 02:17:24 -07:00
2024-10-19 19:15:23 +01:00
2024-07-26 04:19:13 -07:00
2024-06-13 02:24:39 -07:00
2024-05-11 02:17:24 -07:00
2024-09-12 07:28:37 +02:00
2024-09-01 17:34:06 +01:00
2024-11-20 02:09:50 +02:00
2024-08-28 08:39:59 +01:00
2024-05-11 02:17:24 -07:00
2024-10-13 01:58:11 +02:00
2024-05-11 02:17:24 -07:00
2024-12-14 16:41:17 -05:00
2024-07-26 04:05:39 -07:00
2024-05-11 02:17:24 -07:00
2024-06-13 02:20:47 -07:00
2024-08-28 08:39:59 +01:00
2024-08-28 08:39:59 +01:00
2025-01-09 06:46:47 +00:00
2024-08-27 00:44:35 +01:00
2024-08-27 00:44:35 +01:00
2024-09-18 21:42:47 +01:00
2024-08-28 08:39:59 +01:00
2023-11-19 09:57:03 +00:00
2024-08-15 08:53:41 +02:00
2024-05-11 02:17:24 -07:00
2023-10-23 17:28:10 -07:00
2024-11-03 09:29:30 +01:00
2024-06-13 02:20:47 -07:00
2023-11-19 09:57:03 +00:00
2024-12-18 23:06:35 +00:00
2024-07-26 04:19:58 -07:00
2025-01-09 06:46:47 +00:00
2024-12-24 02:18:41 +00:00
2024-06-10 20:32:34 +02:00
2022-03-11 12:59:20 -07:00
2024-07-26 14:53:55 -07:00
2024-05-11 02:17:24 -07:00
2024-05-11 02:17:24 -07:00
2024-06-13 02:20:47 -07:00
2024-10-13 01:58:11 +02:00
2024-05-11 02:17:24 -07:00
2024-05-11 02:17:24 -07:00
2024-06-13 02:20:47 -07:00
2024-06-13 02:22:04 -07:00
2024-11-03 09:29:30 +01:00
2024-11-03 09:29:30 +01:00
2024-06-13 02:20:47 -07:00
2024-07-26 04:19:55 -07:00
2024-06-13 02:20:47 -07:00
2024-06-13 02:20:47 -07:00
2024-11-03 09:29:30 +01:00
2024-05-11 02:17:24 -07:00
2024-05-11 02:17:24 -07:00
2024-06-13 02:24:39 -07:00
2024-07-26 14:53:55 -07:00
2024-09-12 20:29:10 -04:00
2024-05-11 02:17:24 -07:00
2025-01-08 19:33:45 -05:00
2024-08-29 23:43:52 +01:00
2024-10-13 01:58:11 +02:00
2024-07-26 04:19:58 -07:00
2024-06-13 02:22:04 -07:00
2024-06-13 02:24:39 -07:00
2024-06-13 02:22:33 -07:00
2024-05-11 02:17:24 -07:00
2024-06-13 02:19:38 -07:00
2024-08-28 08:39:59 +01:00
2024-06-13 02:19:40 -07:00
2024-11-03 09:29:30 +01:00
2024-06-10 20:32:49 +02:00
2024-10-22 11:39:29 +02:00
2024-07-14 23:02:35 -07:00
2024-02-04 19:09:33 +01:00
2024-12-29 07:00:39 +01:00
2024-08-08 07:47:14 -07:00
2024-07-26 04:19:17 -07:00
2024-06-13 02:22:33 -07:00
2024-06-13 02:24:39 -07:00
2025-01-09 06:46:47 +00:00
2024-12-29 13:36:52 -05:00
2024-05-11 02:17:24 -07:00
2024-05-11 02:17:24 -07:00
2024-07-26 04:19:58 -07:00
2024-10-13 01:58:11 +02:00
2024-07-14 23:02:33 -07:00
2024-09-12 07:28:37 +02:00
2024-05-11 02:17:24 -07:00
2024-09-15 16:51:26 +01:00
2024-10-31 20:42:53 +00:00
2024-10-31 20:42:53 +00:00
2024-12-19 03:21:56 +00:00
2024-12-29 13:37:39 -05:00
2025-01-09 06:46:47 +00:00
2024-06-13 02:24:39 -07:00
2024-06-13 02:20:47 -07:00
2024-07-26 04:19:58 -07:00
2024-11-04 08:29:42 +01:00
2024-08-28 08:39:59 +01:00
2024-09-24 13:35:12 -07:00
2025-01-06 16:20:27 +01:00
2024-06-13 02:22:33 -07:00
2024-05-11 02:17:24 -07:00
2024-09-01 17:34:06 +01:00
2024-06-13 02:24:39 -07:00
2024-05-11 02:17:24 -07:00
2024-02-22 12:33:53 -08:00