on master help sign in
Minor style improvements, switch to using helper function
commit458bf2b1224b1ba4541b2539ebb3b64006b99b5f authorEvan Czaplicki <info@elm-lang.org> dateSun 9 Feb 2014, 14:23 (13 years ago) parentf51ddf9
1 file changed+22−16
compiler/Generate/JavaScript/Ports.hs+22−16
compiler/Generate/JavaScript/Ports.hs+22−16
@@ -32,7 +32,7 @@ incoming tipe =
3232
3333inc :: Type -> Expression () -> Expression ()
3434inc tipe x =
35− case tipe of
35+ case tipe of
3636 Lambda _ _ -> error "functions should not be allowed through input ports"
3737 Var _ -> error "type variables should not be allowed through input ports"
3838 Data ctor []
@@ -58,22 +58,26 @@ inc tipe x =
5858 where
5959 array = DotRef () x (var "map") <| incoming t
6060
61− Data ctor ts | Help.isTuple ctor -> check x JSArray tuple
61+ Data ctor ts
62+ | Help.isTuple ctor -> check x JSArray tuple
6263 where
63− tuple = ObjectLit () $ (PropId () (var "ctor"), string ctor) : values
64+ tuple = ObjectLit () $ (prop "ctor", string ctor) : values
6465 values = zipWith convert [0..] ts
65− convert n t = ( PropId () $ var ('_':show n)
66+ convert n t = ( prop ('_':show n)
6667 , inc t (BracketRef () x (IntLit () n)))
6768
68− Data _ _ -> error "bad ADT got to port generation code"
69+ Data _ _ ->
70+ error "bad ADT got to port generation code"
6971
70− Record _ (Just _) -> error "bad record got to port generation code"
72+ Record _ (Just _) ->
73+ error "bad record got to port generation code"
7174
72− Record fields Nothing -> check x (JSObject (map fst fields)) object
75+ Record fields Nothing ->
76+ check x (JSObject (map fst fields)) object
7377 where
74− object = ObjectLit () $ (PropId () (var "_"), ObjectLit () []) : keys
78+ object = ObjectLit () $ (prop "_", ObjectLit () []) : keys
7579 keys = map convert fields
76− convert (f,t) = (PropId () (var f), inc t (DotRef () x (var f)))
80+ convert (f,t) = (prop f, inc t (DotRef () x (var f)))
7781
7882outgoing tipe =
7983 case tipe of
@@ -114,14 +118,16 @@ out tipe x =
114118 | ctor == "_List" ->
115119 DotRef () (obj "_J.fromList" <| x) (var "map") <| outgoing t
116120
117− Data ctor ts | Help.isTuple ctor ->
118− ArrayLit () $ zipWith convert [0..] ts
119− where
120− convert n t = out t $ DotRef () x $ var ('_':show n)
121−
122− Data _ _ -> error "bad ADT got to port generation code"
121+ Data ctor ts
122+ | Help.isTuple ctor ->
123+ let convert n t = out t $ DotRef () x $ var ('_':show n)
124+ in ArrayLit () $ zipWith convert [0..] ts
125+
126+ Data _ _ ->
127+ error "bad ADT got to port generation code"
123128
124− Record _ (Just _) -> error "bad record got to port generation code"
129+ Record _ (Just _) ->
130+ error "bad record got to port generation code"
125131
126132 Record fields Nothing ->
127133 ObjectLit () keys