diff --git a/test/Compilation/Positive.hs b/test/Compilation/Positive.hs index a116aa3bd1..f7692205bf 100644 --- a/test/Compilation/Positive.hs +++ b/test/Compilation/Positive.hs @@ -241,5 +241,11 @@ tests = "Simple case expression" $(mkRelDir ".") $(mkRelFile "test038.juvix") - $(mkRelFile "out/test038.out") + $(mkRelFile "out/test038.out"), + posTest + "Mutually recursive let expression" + $(mkRelDir ".") + $(mkRelFile "test039.juvix") + $(mkRelFile "out/test039.out") + ] diff --git a/tests/Compilation/positive/out/test039.out b/tests/Compilation/positive/out/test039.out new file mode 100644 index 0000000000..1d474d5255 --- /dev/null +++ b/tests/Compilation/positive/out/test039.out @@ -0,0 +1,2 @@ +false +true diff --git a/tests/Compilation/positive/test039.juvix b/tests/Compilation/positive/test039.juvix new file mode 100644 index 0000000000..47958220b1 --- /dev/null +++ b/tests/Compilation/positive/test039.juvix @@ -0,0 +1,22 @@ +-- Mutually recursive let expressions +module test039; + +open import Stdlib.Prelude; + +main : IO; +main := + let + Ty : Type; + Ty := Nat; + odd : _; + even : _; + unused : _; + odd zero := false; + odd (suc n) := not (even n); + unused := 123; + even zero := true; + even (suc n) := not (odd n); + plusOne : Ty → Ty; + plusOne n := n + 1; + in printBoolLn (odd (plusOne 13)) + >> printBoolLn (even (plusOne 12));