From baf5a49a55377e5f8879355e3a4c573f85082f2a Mon Sep 17 00:00:00 2001 From: Steve Dunham Date: Fri, 3 Apr 2026 21:28:45 -0700 Subject: [PATCH] The case to ite/tertiary code was unreachable --- src/Lib/CompileJS.newt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Lib/CompileJS.newt b/src/Lib/CompileJS.newt index 0d4a0d7..48655b5 100644 --- a/src/Lib/CompileJS.newt +++ b/src/Lib/CompileJS.newt @@ -315,8 +315,8 @@ termToJS {e} env (CCase t alts) f = maybeCaseStmt env sc ((CConAlt _ _ info args qs u) :: Nil) = (termToJS (conAltEnv sc 0 env args) u f) maybeCaseStmt env sc alts@(CLitAlt _ u :: Nil) = termToJS env u f maybeCaseStmt env sc alts@(CDefAlt u :: Nil) = termToJS env u f - maybeCaseStmt env sc alts@(CLitAlt _ _ :: _) = - (JCase sc (map (termToJSAlt env sc) alts)) + -- maybeCaseStmt env sc alts@(CLitAlt _ _ :: _) = + -- (JCase sc (map (termToJSAlt env sc) alts)) maybeCaseStmt env sc alts = case alts of -- Bool alt becomes tertiary operator CLitAlt (LBool b) rhs :: alt :: Nil => @@ -329,6 +329,8 @@ termToJS {e} env (CCase t alts) f = t' = termToJS (conAltEnv sc 0 env args) t f u' = termToJS (conAltEnv sc 0 env $ getArgs alt) (getBody alt) f in tertiary cond t' u' f + alts@(CLitAlt _ _ :: _) => + (JCase sc (map (termToJSAlt env sc) alts)) -- fall back to switch statement alts => JCase (Dot sc "tag") (map (termToJSAlt env sc) alts)