git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Field puns, fix #921
5cc3031Phil Freeman
examples/passing/FieldPuns.pursnew file+8
@@ -0,0 +1,8 @@
1+module Main where
2+
3+import Prelude
4+import Control.Monad.Eff.Console
5+
6+greet { greeting, name } = log $ greeting <> ", " <> name <> "."
7+
8+main = greet { greeting: "Hello", name: "World" }
src/Language/PureScript/Parser/Declarations.hs+7−5
@@ -517,11 +517,13 @@ parseNullBinder :: TokenParser Binder
517parseNullBinder = underscore *> return NullBinder
517parseNullBinder = underscore *> return NullBinder
518
518
519parseIdentifierAndBinder :: TokenParser (String, Binder)
519parseIdentifierAndBinder :: TokenParser (String, Binder)
520−parseIdentifierAndBinder = do
520+parseIdentifierAndBinder =
521+ do name <- lname
522+ b <- P.option (VarBinder (Ident name)) rest
523+ return (name, b)
521− name <- lname <|> stringLiteral
524+ <|> (,) <$> stringLiteral <*> rest
525+ where
522− C.indented *> (equals <|> colon)
526+ rest = C.indented *> (equals <|> colon) *> C.indented *> parseBinder
523− binder <- C.indented *> parseBinder
524− return (name, binder)
525
527
526-- |
528-- |
527-- Parse a binder
529-- Parse a binder