Skip to content

Commit 6695e98

Browse files
committed
Extend compile to allow control goals (call/1 etc) to be vars
1 parent bc296ad commit 6695e98

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/compile.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
168168
return;
169169
}
170170

171-
if (((*src)->val_off == g_call_s) && ((*src)->arity == 1) && !is_var(c)) {
171+
if (((*src)->val_off == g_call_s) && ((*src)->arity == 1)) {
172172
unsigned var_num = cl->num_vars++;
173173
*src += 1;
174174
make_instr((*dst)++, g_sys_fail_on_retry_s, bif_sys_fail_on_retry_1, 1, 1);
@@ -204,7 +204,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
204204
return;
205205
}
206206

207-
if (((*src)->val_off == g_once_s) && ((*src)->arity == 1) && !is_var(c)) {
207+
if (((*src)->val_off == g_once_s) && ((*src)->arity == 1)) {
208208
unsigned var_num = cl->num_vars++;
209209
*src += 1;
210210
make_instr((*dst)++, g_sys_fail_on_retry_s, bif_sys_fail_on_retry_1, 1, 1);
@@ -218,7 +218,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
218218
return;
219219
}
220220

221-
if (((*src)->val_off == g_ignore_s) && ((*src)->arity == 1) && !is_var(c)) {
221+
if (((*src)->val_off == g_ignore_s) && ((*src)->arity == 1)) {
222222
unsigned var_num = cl->num_vars++;
223223
*src += 1;
224224
cell *save_dst = *dst;
@@ -236,7 +236,7 @@ static void compile_term(predicate *pr, clause *cl, cell **dst, cell **src)
236236
return;
237237
}
238238

239-
if (((*src)->val_off == g_negation_s) && ((*src)->arity == 1) && !is_var(c)) {
239+
if (((*src)->val_off == g_negation_s) && ((*src)->arity == 1)) {
240240
unsigned var_num = cl->num_vars++;
241241
*src += 1;
242242
cell *save_dst = *dst;

tests/issues/test145.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[[a|...],[a|[[a|...],...]=[...,[a|...]]]]=[[a|[[a|...],...]=[...,[a|...]]],[a|...]]
1+
[[a|...],[a|...]]=[[a|...],[a|...]]

tests/issues/test838.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[_9,_10]
1+
[_10,_11]

0 commit comments

Comments
 (0)