diff --git a/src/vm.c b/src/vm.c index 7dc788cc..8e2ddb6c 100644 --- a/src/vm.c +++ b/src/vm.c @@ -712,6 +712,15 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value argv) L_CALL: x = pic->sp[-c.u.i]; if (! pic_proc_p(x)) { + + if (pic_var_p(x)) { + if (c.u.i != 1) { + pic_errorf(pic, "invalid call-sequence for var object"); + } + POP(); + PUSH(pic_var_ref(pic, pic_var_ptr(x))); + NEXT; + } pic_errorf(pic, "invalid application: ~s", x); } proc = pic_proc_ptr(x);