Commit f131055ed6273162cf87ed01506e5b8300d2437b

Thomas de Grivel 2023-09-10T14:18:55

fix env_eval_equal_tag

diff --git a/libc3/env.c b/libc3/env.c
index ae70669..e573986 100644
--- a/libc3/env.c
+++ b/libc3/env.c
@@ -318,12 +318,12 @@ bool env_eval_equal_tag (s_env *env, const s_tag *a, const s_tag *b,
     return false;
   }
   if (is_unbound_a) {
-    tag_copy(b, dest);
+    env_eval_tag(env, b, dest);
     frame_binding_new(env->frame, a->data.ident.sym, b);
     return true;
   }
   if (is_unbound_b) {
-    tag_copy(a, dest);
+    env_eval_tag(env, a, dest);
     frame_binding_new(env->frame, b->data.ident.sym, a);
     return true;
   }
diff --git a/test/ic3/call.in b/test/ic3/call.in
index 9cfcb23..427a171 100644
--- a/test/ic3/call.in
+++ b/test/ic3/call.in
@@ -8,6 +8,6 @@ quote Test.test(1, 2)
 quote Test.test(1, 2, 3)
 quote first((1, 2))
 quote C3.first((1, 2))
-
 first((1, 2))
 C3.first((2, 3))
+(1 + 2)
diff --git a/test/ic3/call.out.expected b/test/ic3/call.out.expected
index 4dd359e..b9a0bb3 100644
--- a/test/ic3/call.out.expected
+++ b/test/ic3/call.out.expected
@@ -10,3 +10,4 @@ first((1, 2))
 C3.first((1, 2))
 1
 2
+3
diff --git a/test/ic3/op.in b/test/ic3/op.in
index 3a87a8c..1247df2 100644
--- a/test/ic3/op.in
+++ b/test/ic3/op.in
@@ -6,3 +6,5 @@ quote 1 + 2 / 3 * 4 - 5
 1 + 2 / 3
 1 + 2 / 3 * 4
 1 + 2 / 3 * 4 - 5
+(1 + 2)
+a = (1 + 2)
diff --git a/test/ic3/op.out.expected b/test/ic3/op.out.expected
index 3b58e11..7759641 100644
--- a/test/ic3/op.out.expected
+++ b/test/ic3/op.out.expected
@@ -6,3 +6,5 @@
 1
 1
 -4
+3
+3