Temporarily revert the support for redefining variables in the body
The current implementation appears to be buggy. Need to investigage how to do it properly.
This commit is contained in:
parent
5f2636c62f
commit
9501dea85a
2 changed files with 15 additions and 15 deletions
|
@ -951,7 +951,7 @@ Result<Expression> Compiler::compile_body(Context& context, const Value& expr) {
|
||||||
ex_res.reg = expr.reg;
|
ex_res.reg = expr.reg;
|
||||||
} else {
|
} else {
|
||||||
// TODO: commenting this out means we waste registers
|
// TODO: commenting this out means we waste registers
|
||||||
// context.maxreg = maxreg;
|
context.maxreg = maxreg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,22 +56,22 @@
|
||||||
|
|
||||||
(assert (= (do 1 2 3) 3))
|
(assert (= (do 1 2 3) 3))
|
||||||
|
|
||||||
;; allow definition and redefinition of variables with "def"
|
;; ;; allow definition and redefinition of variables with "def"
|
||||||
|
|
||||||
(fn def-redef ()
|
;; (fn def-redef ()
|
||||||
(def x 1)
|
;; (def x 1)
|
||||||
(def x (+ x 1))
|
;; (def x (+ x 1))
|
||||||
(def y 4)
|
;; (def y 4)
|
||||||
(+ x y))
|
;; (+ x y))
|
||||||
|
|
||||||
(assert (= (def-redef) 6))
|
;; (assert (= (def-redef) 6))
|
||||||
|
|
||||||
;; allow redefenition of variables with "fn"
|
;; ;; allow redefenition of variables with "fn"
|
||||||
|
|
||||||
(fn def-redef-fn ()
|
;; (fn def-redef-fn ()
|
||||||
(def x 2)
|
;; (def x 2)
|
||||||
(fn x (y) (+ x y))
|
;; (fn x (y) (+ x y))
|
||||||
(x 3)
|
;; (x 3)
|
||||||
)
|
;; )
|
||||||
|
|
||||||
(assert (= (def-redef-fn) 5))
|
;; (assert (= (def-redef-fn) 5))
|
||||||
|
|
Loading…
Reference in a new issue