poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/5] pkl: Postpone decision of completeness of a struct literals


From: Mohammad-Reza Nabipoor
Subject: [PATCH 1/5] pkl: Postpone decision of completeness of a struct literals
Date: Sat, 22 Jan 2022 23:37:38 +0330

2022-01-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * libpoke/pkl-typify.c (pkl_typify1_ps_struct): Postpone type
        completion decision to `pkl_typify2_ps_type` phase.
---
 ChangeLog            | 5 +++++
 libpoke/pkl-typify.c | 5 +----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ee3e304c..fc088bc9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2022-01-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * libpoke/pkl-typify.c (pkl_typify1_ps_struct): Postpone type
+       completion decision to `pkl_typify2_ps_type` phase.
+
 2022-01-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
 
        * libpoke/pkl-typify.c (pkl_typify1_ps_funcall): When the arg
diff --git a/libpoke/pkl-typify.c b/libpoke/pkl-typify.c
index fa621aa6..28ee181b 100644
--- a/libpoke/pkl-typify.c
+++ b/libpoke/pkl-typify.c
@@ -1206,7 +1206,6 @@ PKL_PHASE_BEGIN_HANDLER (pkl_typify1_ps_struct)
   pkl_ast_node node = PKL_PASS_NODE;
   pkl_ast_node type;
   pkl_ast_node t, struct_field_types = NULL;
-  int type_complete = 1;
 
   /* Build a chain with the types of the struct fields.  */
   for (t = PKL_AST_STRUCT_FIELDS (node); t; t = PKL_AST_CHAIN (t))
@@ -1223,8 +1222,6 @@ PKL_PHASE_BEGIN_HANDLER (pkl_typify1_ps_struct)
 
       struct_field_types = pkl_ast_chainon (struct_field_types,
                                             struct_type_field);
-      if (!PKL_AST_TYPE_COMPLETE (PKL_AST_TYPE (t)))
-        type_complete = 0;
     }
 
   /* Build the type of the struct.  */
@@ -1237,7 +1234,7 @@ PKL_PHASE_BEGIN_HANDLER (pkl_typify1_ps_struct)
                                    0 /* pinned */,
                                    0 /* union */);
   PKL_AST_TYPE (node) = ASTREF (type);
-  PKL_AST_TYPE_COMPLETE (type) = type_complete;
+  PKL_PASS_RESTART = 1;
 }
 PKL_PHASE_END_HANDLER
 
-- 
2.34.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]