Commit 07649a62845b98a5fbc26e8542e0e244ae8bda29

Thomas de Grivel 2023-02-10T19:23:50

wip

diff --git a/libc3/tag.c b/libc3/tag.c
index 3487c75..d1531a8 100644
--- a/libc3/tag.c
+++ b/libc3/tag.c
@@ -118,13 +118,33 @@ void tag_clean (s_tag *tag)
 {
   assert(tag);
   switch (tag->type.type) {
-  case TAG_CALL:    call_clean(&tag->data.call);       break;
-  case TAG_INTEGER: integer_clean(&tag->data.integer); break;
-  case TAG_LIST:    list_delete(tag->data.list);       break;
-  case TAG_QUOTE:   quote_clean(tag->data.quote);      break;
-  case TAG_STR:     str_clean(&tag->data.str);         break;
-  case TAG_TUPLE:   tuple_clean(&tag->data.tuple);     break;
-  default: ;
+  case TAG_CALL:
+  case TAG_CALL_FN:
+  case TAG_CALL_MACRO: call_clean(&tag->data.call);       break;
+  case TAG_FN:         fn_clean(&tag->data.fn);           break;
+  case TAG_INTEGER:    integer_clean(&tag->data.integer); break;
+  case TAG_LIST:       list_delete(tag->data.list);       break;
+  case TAG_QUOTE:      quote_clean(tag->data.quote);      break;
+  case TAG_STR:        str_clean(&tag->data.str);         break;
+  case TAG_TUPLE:      tuple_clean(&tag->data.tuple);     break;
+  case TAG_BOOL:
+  case TAG_CHARACTER:
+  case TAG_F32:
+  case TAG_F64:
+  case TAG_IDENT:
+  case TAG_PTAG:
+  case TAG_S8:
+  case TAG_S16:
+  case TAG_S32:
+  case TAG_S64:
+  case TAG_SYM:
+  case TAG_U8:
+  case TAG_U16:
+  case TAG_U32:
+  case TAG_U64:
+  case TAG_VAR:
+  case TAG_VOID:
+    break;
   }
 }