on master help sign in
Fix bug about pattern matching on enums in --optimize
commitb44956d2f34664dc037c1ecb48ef32b2d5c53fe8 authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 15 May 2018, 13:19 (8 years ago) parent3f45254
1 file changed+12−2
compiler/src/Generate/JavaScript/Expression.hs+12−2
compiler/src/Generate/JavaScript/Expression.hs+12−2
@@ -883,8 +883,18 @@ generateIfTest mode root (path, test) =
883883 value = pathToJsExpr mode root path
884884 in
885885 case test of
886− DT.IsCtor home name index _ _ ->
887− strictEq (JS.Access value Name.dollar) $
886+ DT.IsCtor home name index _ opts ->
887+ let
888+ tag =
889+ case mode of
890+ Mode.Dev _ _ -> JS.Access value Name.dollar
891+ Mode.Prod _ _ ->
892+ case opts of
893+ Can.Normal -> JS.Access value Name.dollar
894+ Can.Enum -> value
895+ Can.Unbox -> value
896+ in
897+ strictEq tag $
888898 case mode of
889899 Mode.Dev _ _ -> JS.String (N.toBuilder name)
890900 Mode.Prod _ _ -> JS.Int (ctorToInt home name index)