]> Nishi Git Mirror - gwion.git/commitdiff
:art: Use Ref as a bool
authorJérémie Astor <fennecdjay@gmail.com>
Sun, 13 Jun 2021 17:59:32 +0000 (19:59 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Sun, 13 Jun 2021 17:59:32 +0000 (19:59 +0200)
ast
src/parse/type_decl.c

diff --git a/ast b/ast
index 591953c6a241aa5ec7cbfed3ed73ab819fdeb75f..6d965961163bf32e912acd09d6cda41b93e24ff7 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit 591953c6a241aa5ec7cbfed3ed73ab819fdeb75f
+Subproject commit 6d965961163bf32e912acd09d6cda41b93e24ff7
index 56e7f7182d08ba25bfbeb405b7e21bf96bce318d..c74f2408de2c711e50bfea7e0f7ce5974fe1a196 100644 (file)
@@ -20,17 +20,16 @@ ANN static Type option(const Env env, Type_Decl *td) {
   return t;
 }
 
-ANN static Type _ref(const Env env, Type_Decl *td, const uint8_t n) {
+ANN static Type _ref(const Env env, Type_Decl *td) {
   struct Type_List_ tl = {.td = td};
   Type_Decl tmp = {.xid = insert_symbol("Ref"), .types = &tl, .pos = td->pos};
-  return !(n - 1) ? known_type(env, &tmp) : _ref(env, &tmp, n - 1);
+  return known_type(env, &tmp);
 }
 
 ANN static inline Type ref(const Env env, Type_Decl *td) {
-  const uint8_t ref = td->ref;
-  td->ref           = 0;
-  const Type t      = _ref(env, td, ref);
-  td->ref           = ref;
+  td->ref      = false;
+  const Type t = _ref(env, td);
+  td->ref      = true;
   return t;
 }