diff --git a/lib/comp.c b/lib/comp.c index 64b5e26..b3dc3ef 100644 --- a/lib/comp.c +++ b/lib/comp.c @@ -4497,7 +4497,6 @@ redo: if (compile_cons_mlist_expression(hcl, oprnd, 0) <= -1) return -1; break; - case HCL_CONCODE_BLOCK: if (!(hcl->option.trait & HCL_TRAIT_LANG_ENABLE_BLOCK)) { diff --git a/t/feed-01.hcl b/t/feed-01.hcl index d99db72..6b8cf5d 100644 --- a/t/feed-01.hcl +++ b/t/feed-01.hcl @@ -49,6 +49,9 @@ if (eqv? J 1296) { } - +k := 5 +if { q := 10; k < q } { ## a block expression is a normal expression. so t can be used as a conditional expression for if + printf "OK: k is less than q\n" +} else (printf "BAD: k is not less than q\n") } ## END diff --git a/t/fun-01.hcl b/t/fun-01.hcl index 802b400..61658fc 100644 --- a/t/fun-01.hcl +++ b/t/fun-01.hcl @@ -20,7 +20,7 @@ defun mkfun(t) { }); } -defun mkfund(t) { +defun mkfun2(t) { return {fun(c) { return (fun(d) { return (+ d c t) @@ -55,7 +55,7 @@ if (k = 60) { printf "ERROR - %d\n" k }; -k := (((mkfund 10) 40) 30) +k := (((mkfun2 10) 40) 30) if (k = 80) { printf "OK - %d\n" k } else {