From bd5cf23517d440d23dea1105c554881a65b48a66 Mon Sep 17 00:00:00 2001 From: Jan Mas Rovira Date: Wed, 21 Feb 2024 17:21:51 +0100 Subject: [PATCH] fix caseCmd for RepConstr --- src/Juvix/Compiler/Nockma/Translation/FromTree.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Juvix/Compiler/Nockma/Translation/FromTree.hs b/src/Juvix/Compiler/Nockma/Translation/FromTree.hs index 640aaffee3..f3dc9936ae 100644 --- a/src/Juvix/Compiler/Nockma/Translation/FromTree.hs +++ b/src/Juvix/Compiler/Nockma/Translation/FromTree.hs @@ -753,8 +753,13 @@ caseCmd arg defaultBranch = \case OpEq # constructorTagToTerm tag # (getConstructorField ConstructorTag arg) - elseBr <- caseCmd arg defaultBranch bs - return (branch cond b elseBr) + case nonEmpty bs of + Nothing -> case defaultBranch of + Nothing -> return b + Just defbr -> return (branch cond b defbr) + Just ((t', b') :| bs') -> do + elseBr <- goRepConstr t' b' bs' + return (branch cond b elseBr) asNockmaMemRepListConstr :: Tree.Tag -> Sem r NockmaMemRepListConstr asNockmaMemRepListConstr tag = case tag of