ringabout
e9a0c9634e
fixes #25784 ; Object default field initialized with an object constructor ( #25785 )
...
fixes #25784
This pull request addresses the handling of forward object types during
type determination in the Nim compiler and adds new test cases to ensure
correct default value initialization for objects with forward
references. The main focus is to allow forward object types to remain
unresolved during the initial type analysis, deferring their resolution
to a later compilation phase. This helps support object constructors
with default values involving forward types.
**Compiler improvements:**
* Updated `semObjConstr` in `compiler/semobjconstr.nim` to allow forward
object types (`tyForward`) to remain unresolved during determine-type
analysis. This avoids premature errors and ensures that such types are
resolved later, supporting delayed field-default resolution.
**Testing enhancements:**
* Added new test cases in `tests/objects/mobject_default_value.nim` to
verify that objects with default fields referencing forward types are
correctly initialized, and that their default values are properly set.
---------
Co-authored-by: Copilot <copilot@github.com >
2026-05-05 21:05:17 +02:00
..
2026-01-16 12:19:17 +01:00
2025-11-13 21:31:24 +01:00
2023-08-06 14:26:21 +02:00
2023-12-15 10:20:57 +01:00
2026-03-23 09:35:30 +01:00
2026-03-19 21:25:11 +01:00
2025-12-01 22:59:12 +01:00
2026-03-15 07:57:16 +01:00
2024-04-16 12:46:59 +02:00
2024-07-12 15:23:09 +02:00
2023-10-11 17:44:14 +02:00
2026-02-10 13:21:35 +01:00
2024-11-19 08:51:54 +01:00
2026-01-05 15:21:59 +01:00
2024-11-18 17:34:37 +01:00
2024-11-18 17:34:37 +01:00
2026-04-27 18:00:29 +02:00
2026-04-27 18:00:29 +02:00
2026-04-27 18:00:29 +02:00
2022-11-30 21:51:13 +01:00
2025-10-06 21:55:31 +02:00
2026-05-05 21:27:33 +08:00
2024-11-18 17:34:37 +01:00
2024-11-18 17:34:37 +01:00
2026-04-02 07:19:43 +02:00
2025-03-10 11:20:44 +01:00
2026-04-27 18:00:29 +02:00
2026-05-05 21:27:33 +08:00
2025-12-11 18:22:38 +01:00
2026-03-16 16:56:18 +01:00
2024-03-28 11:04:12 +01:00
2026-04-27 18:00:29 +02:00
2023-06-18 16:06:14 +02:00
2025-12-31 13:33:57 +01:00
2026-02-01 17:06:33 +01:00
2017-01-07 22:35:09 +01:00
2022-06-10 20:40:08 +02:00
2023-10-29 14:48:11 +01:00
2026-04-28 18:48:41 +02:00
2026-02-10 13:21:35 +01:00
2023-08-06 14:26:21 +02:00
2026-03-27 10:20:10 +01:00
2025-11-13 21:31:24 +01:00
2023-11-20 21:12:13 +01:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2024-08-28 20:46:36 +02:00
2025-07-14 23:14:06 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2025-12-11 18:22:38 +01:00
2025-11-21 21:26:43 +01:00
2023-10-29 14:48:11 +01:00
2026-01-22 04:26:20 +01:00
2020-06-01 19:21:41 +02:00
2026-03-07 15:10:01 +01:00
2025-11-25 12:49:23 +01:00
2025-10-13 13:47:06 +02:00
2026-04-02 07:19:43 +02:00
2024-12-27 19:42:18 +01:00
2026-04-18 09:40:55 +02:00
2025-07-14 23:15:44 +02:00
2026-04-10 15:29:20 +02:00
2026-04-02 07:19:43 +02:00
2023-12-13 10:39:10 +01:00
2026-01-23 22:50:00 +01:00
2026-04-27 18:00:29 +02:00
2025-12-11 18:22:38 +01:00
2026-03-19 07:39:18 +01:00
2026-01-23 22:50:00 +01:00
2026-04-02 07:19:43 +02:00
2026-01-16 12:19:17 +01:00
2025-12-11 18:22:38 +01:00
2021-01-12 09:36:51 +01:00
2026-03-07 07:39:57 +01:00
2026-01-16 12:19:17 +01:00
2024-04-05 08:54:48 +02:00
2026-03-19 07:35:24 +01:00
2026-01-09 13:10:04 +01:00
2025-11-13 21:31:24 +01:00
2026-02-10 13:21:35 +01:00
2026-03-24 21:34:46 +08:00
2026-02-07 20:46:50 +01:00
2025-12-11 18:22:38 +01:00
2026-04-28 18:48:41 +02:00
2026-04-27 18:00:29 +02:00
2023-12-15 08:13:25 +01:00
2025-10-23 09:05:05 +02:00
2025-11-13 21:31:24 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2025-12-11 18:22:38 +01:00
2023-10-29 14:48:11 +01:00
2024-08-12 15:33:26 +02:00
2023-04-17 20:55:22 +02:00
2025-04-03 12:54:00 +02:00
2026-04-27 18:00:29 +02:00
2023-08-06 14:26:21 +02:00
2025-11-13 21:31:24 +01:00
2025-09-24 06:29:57 +02:00
2025-07-14 23:15:02 +02:00
2022-08-24 09:44:16 +02:00
2026-01-16 12:19:17 +01:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2026-01-24 06:07:41 +01:00
2023-03-03 07:36:38 +01:00
2025-10-13 13:47:06 +02:00
2018-05-27 19:19:12 +02:00
2026-02-10 13:21:35 +01:00
2023-10-29 14:48:11 +01:00
2024-04-10 14:41:16 +02:00
2024-09-03 09:19:52 +02:00
2023-07-02 22:36:05 +02:00
2026-04-16 09:44:58 +02:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2023-11-06 18:33:28 +01:00
2023-08-10 14:26:40 +02:00
2020-09-11 01:04:07 +02:00
2026-02-10 00:04:11 +01:00
2026-02-10 13:21:35 +01:00
2026-04-09 20:44:35 +02:00
2026-04-18 08:52:31 +02:00
2026-04-17 10:00:00 +02:00
2025-12-11 18:22:38 +01:00
2025-12-30 23:09:01 +01:00
2025-12-11 18:22:38 +01:00
2025-12-26 21:59:38 +01:00
2025-12-11 18:22:38 +01:00
2026-05-05 20:21:37 +02:00
2026-05-05 21:05:17 +02:00
2025-12-11 18:22:38 +01:00
2026-04-13 18:02:53 +08:00
2026-04-18 08:52:31 +02:00
2022-12-11 16:58:50 +01:00
2026-01-16 12:19:17 +01:00
2026-05-05 21:05:17 +02:00
2026-02-24 10:47:14 +01:00
2026-02-13 22:59:21 +01:00
2026-04-09 20:44:35 +02:00
2025-12-26 21:59:38 +01:00
2025-12-11 18:22:38 +01:00
2024-03-16 08:35:18 +08:00
2026-02-10 13:21:35 +01:00
2025-12-29 13:52:22 +01:00
2025-07-18 08:44:36 +02:00
2024-04-10 14:41:16 +02:00
2023-08-10 14:26:40 +02:00
2026-04-17 09:59:22 +02:00
2025-04-12 08:39:11 +02:00
2025-12-31 13:33:57 +01:00
2026-03-30 15:09:11 +02:00
2026-03-20 07:07:26 +01:00
2026-04-02 11:46:49 +02:00
2023-10-29 14:48:11 +01:00
2025-11-13 21:31:24 +01:00
2026-02-10 13:21:35 +01:00
2023-12-12 16:54:50 +01:00
2025-12-25 00:04:18 +01:00
2026-03-09 11:59:12 +01:00
2026-04-01 00:24:06 +02:00
2023-08-10 14:26:40 +02:00
2024-04-10 14:41:16 +02:00
2025-05-10 08:26:21 +02:00
2025-11-13 21:31:24 +01:00
2026-01-16 12:19:17 +01:00
2023-12-25 07:12:54 +01:00