on master help sign in
javascript: pattern guards for typematching
ba9b358raichoo
src/IRTS/CodegenJavaScript.hs+6−5
@@ -361,11 +361,12 @@ translateCase :: String -> String -> SAlt -> String
361translateCase modname _ (SDefaultCase e) =
361translateCase modname _ (SDefaultCase e) =
362 createIfBlock "true" (translateExpression modname e)
362 createIfBlock "true" (translateExpression modname e)
363
363
364−translateCase modname var (SConstCase ChType e) =
364+translateCase modname var (SConstCase ty e)
365− translateTypeMatch modname var "Char" e
365+ | ChType <- ty = translateTypeMatch modname var "Char" e
366−
367−translateCase modname var (SConstCase StrType e) =
368− translateTypeMatch modname var "String" e
366+ | StrType <- ty = translateTypeMatch modname var "String" e
367+ | IType <- ty = translateTypeMatch modname var "Int" e
368+ where
369+ matchHelper tyName = translateTypeMatch modname var tyName e
369
370
370translateCase modname var (SConstCase cst e) =
371translateCase modname var (SConstCase cst e) =
371 let cond = var ++ " == " ++ translateConstant cst in
372 let cond = var ++ " == " ++ translateConstant cst in