on master help sign in
javascript: pattern guards for typematching
commitba9b3587810c8f7d769a9aaf2d2eb406cc2b66e1 authorraichoo <raichoo@googlemail.com> dateWed 16 Jan 2013, 17:42 (14 years ago) parent2d8357d
1 file changed+6−5
src/IRTS/CodegenJavaScript.hs+6−5
src/IRTS/CodegenJavaScript.hs+6−5
@@ -361,11 +361,12 @@ translateCase :: String -> String -> SAlt -> String
361361translateCase modname _ (SDefaultCase e) =
362362 createIfBlock "true" (translateExpression modname e)
363363
364−translateCase modname var (SConstCase ChType e) =
365− translateTypeMatch modname var "Char" e
366−
367−translateCase modname var (SConstCase StrType e) =
368− translateTypeMatch modname var "String" e
364+translateCase modname var (SConstCase ty e)
365+ | ChType <- ty = translateTypeMatch modname var "Char" 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
369370
370371translateCase modname var (SConstCase cst e) =
371372 let cond = var ++ " == " ++ translateConstant cst in