Skip to content

Commit b6e00d8

Browse files
committed
Extend compile to allow more goals to be vars
1 parent 6695e98 commit b6e00d8

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/compile.c

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
4848
// T1 -> T2 ; T3
4949

5050
if (((*src)->val_off == g_disjunction_s) && ((*src)->arity == 2)
51-
&& !is_var(c)
5251
&& is_callable(c) && c->bif_ptr && (c->arity == 2)
5352
&& (c->bif_ptr->fn == bif_iso_if_then_2)) {
5453
*src += 2;
@@ -75,7 +74,6 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
7574
// T1 *-> T2 ; T3
7675

7776
if (((*src)->val_off == g_disjunction_s) && ((*src)->arity == 2)
78-
&& !is_var(c)
7977
&& is_callable(c) && c->bif_ptr && (c->arity == 2)
8078
&& (c->bif_ptr->fn == bif_soft_if_then_2)) {
8179
*src += 2;
@@ -120,7 +118,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
120118

121119
// T1 -> T2
122120

123-
if (((*src)->val_off == g_if_then_s) && ((*src)->arity == 2) && !is_var(c)) {
121+
if (((*src)->val_off == g_if_then_s) && ((*src)->arity == 2)) {
124122
unsigned var_num = cl->num_vars++;
125123
*src += 1;
126124
make_instr((*dst)++, g_sys_fail_on_retry_s, bif_sys_fail_on_retry_1, 1, 1);
@@ -135,7 +133,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
135133

136134
// T1 *-> T2
137135

138-
if (((*src)->val_off == g_soft_cut_s) && ((*src)->arity == 2) && !is_var(c)) {
136+
if (((*src)->val_off == g_soft_cut_s) && ((*src)->arity == 2)) {
139137
unsigned var_num = cl->num_vars++;
140138
*src += 1;
141139
make_instr((*dst)++, g_sys_fail_on_retry_s, bif_sys_fail_on_retry_1, 1, 1);
@@ -147,7 +145,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
147145
return;
148146
}
149147

150-
if (((*src)->val_off == g_if_s) && ((*src)->arity == 3) && !is_var(c)) {
148+
if (((*src)->val_off == g_if_s) && ((*src)->arity == 3)) {
151149
*src += 1;
152150
unsigned var_num = cl->num_vars++;
153151
cell *save_dst1 = *dst;
@@ -253,7 +251,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
253251
return;
254252
}
255253

256-
if (((*src)->val_off == g_reset_s) && ((*src)->arity == 3) && !is_var(c)) {
254+
if (((*src)->val_off == g_reset_s) && ((*src)->arity == 3)) {
257255
unsigned var_num = cl->num_vars++;
258256
*src += 1;
259257
make_instr((*dst)++, g_sys_fail_on_retry_s, bif_sys_fail_on_retry_1, 1, 1);
@@ -289,8 +287,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
289287
return;
290288
}
291289

292-
if (((*src)->val_off == g_colon_s) && ((*src)->arity == 2) && !is_var((c))
293-
) {
290+
if (((*src)->val_off == g_colon_s) && ((*src)->arity == 2) && !is_var((c))) {
294291
unsigned var_num1 = cl->num_vars++;
295292
*src += 1;
296293
make_instr((*dst)++, g_sys_module_s, bif_sys_module_1, 1, 1);

0 commit comments

Comments
 (0)