The case to ite/tertiary code was unreachable

This commit is contained in:
2026-04-03 21:28:45 -07:00
parent 623737f57f
commit baf5a49a55

View File

@@ -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 ((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@(CLitAlt _ u :: Nil) = termToJS env u f
maybeCaseStmt env sc alts@(CDefAlt u :: Nil) = termToJS env u f maybeCaseStmt env sc alts@(CDefAlt u :: Nil) = termToJS env u f
maybeCaseStmt env sc alts@(CLitAlt _ _ :: _) = -- maybeCaseStmt env sc alts@(CLitAlt _ _ :: _) =
(JCase sc (map (termToJSAlt env sc) alts)) -- (JCase sc (map (termToJSAlt env sc) alts))
maybeCaseStmt env sc alts = case alts of maybeCaseStmt env sc alts = case alts of
-- Bool alt becomes tertiary operator -- Bool alt becomes tertiary operator
CLitAlt (LBool b) rhs :: alt :: Nil => 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 t' = termToJS (conAltEnv sc 0 env args) t f
u' = termToJS (conAltEnv sc 0 env $ getArgs alt) (getBody alt) f u' = termToJS (conAltEnv sc 0 env $ getArgs alt) (getBody alt) f
in tertiary cond t' u' f in tertiary cond t' u' f
alts@(CLitAlt _ _ :: _) =>
(JCase sc (map (termToJSAlt env sc) alts))
-- fall back to switch statement -- fall back to switch statement
alts => JCase (Dot sc "tag") (map (termToJSAlt env sc) alts) alts => JCase (Dot sc "tag") (map (termToJSAlt env sc) alts)