diff --git a/hy/core/mangles.py b/hy/core/mangles.py index 4aaf210..b86dd60 100644 --- a/hy/core/mangles.py +++ b/hy/core/mangles.py @@ -41,7 +41,7 @@ class HoistableMangle(hy.mangle.Mangle): class FunctionMangle(HoistableMangle): hoistable = ["fn"] - ignore = ["def", "decorate_with", "setf", "setv"] + ignore = ["def", "decorate_with", "setf", "setv", "foreach", "do"] def __init__(self): self.series = 0 @@ -65,7 +65,7 @@ class FunctionMangle(HoistableMangle): class IfMangle(HoistableMangle): - ignore = [] + ignore = ["foreach", "do"] def __init__(self): self.series = 0 diff --git a/tests/native_tests/language.hy b/tests/native_tests/language.hy index 018cbc3..0bd08ff 100644 --- a/tests/native_tests/language.hy +++ b/tests/native_tests/language.hy @@ -511,6 +511,16 @@ ((fn [] 1)))))) +(defn test-nested-if [] + "NATIVE: test nested if" + (for [x (range 10)] + (if (in "foo" "foobar") + (do + (if true true true)) + (do + (if false false false))))) + + (defn test-eval [] "NATIVE: test eval" (assert (= 2 (eval (quote (+ 1 1)))))