git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix issue 2128 (#2144)

* No backtracking out of class/instance body once 'where' is parsed * Remove unnecessary try * Update CONTRIBUTORS

commit957270644dca12c1090963348cd8c4fb940aa0a8 authorBen James <bmjames@gmail.com> dateSun 22 May 2016, 22:15 (10 years ago) parentf28b668
4 files changed+16−2
CONTRIBUTORS.md+1 examples/failing/2128-class.purs+5 examples/failing/2128-instance.purs+8 src/Language/PureScript/Parser/Declarations.hs+2−2
CONTRIBUTORS.md+1
@@ -71,6 +71,7 @@ This file lists the contributors to the PureScript compiler project, and the ter
7171- [@zudov](https://github.com/zudov) (Konstantin Zudov) My existing contributions and all future contributions until further notice are Copyright Konstantin Zudov, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT).
7272- [@LiamGoodacre](https://github.com/LiamGoodacre) (Liam Goodacre) My existing contributions and all future contributions until further notice are Copyright Liam Goodacre, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT).
7373- [@bsermons](https://github.com/bsermons) (Brian Sermons) My existing contributions and all future contributions until further notice are Copyright Brian Sermons, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT).
74+- [@bmjames](https://github.com/bmjames) (Ben James) My existing contributions and all future contributions until further notice are Copyright Ben James, and are licensed to the owners and users of the PureScript compiler project under the terms of the [MIT license](http://opensource.org/licenses/MIT).
7475
7576### Companies
7677
examples/failing/2128-class.pursnew file+5
@@ -0,0 +1,5 @@
1+-- @shouldFailWith ErrorParsingModule
2+module Main where
3+
4+class Foo a where
5+ foo :: a -> !!!
examples/failing/2128-instance.pursnew file+8
@@ -0,0 +1,8 @@
1+-- @shouldFailWith ErrorParsingModule
2+module Main where
3+
4+class Foo a where
5+ foo :: a
6+
7+instance fooInt :: Foo Int where
8+ foo = !!!
src/Language/PureScript/Parser/Declarations.hs+2−2
@@ -182,7 +182,7 @@ parseTypeClassDeclaration = do
182182 return implies
183183 className <- indented *> properName
184184 idents <- P.many (indented *> kindedIdent)
185− members <- P.option [] . P.try $ do
185+ members <- P.option [] $ do
186186 indented *> reserved "where"
187187 indented *> mark (P.many (same *> positioned parseTypeDeclaration))
188188 return $ TypeClassDeclaration className idents implies members
@@ -206,7 +206,7 @@ parseInstanceDeclaration = do
206206parseTypeInstanceDeclaration :: TokenParser Declaration
207207parseTypeInstanceDeclaration = do
208208 instanceDecl <- parseInstanceDeclaration
209− members <- P.option [] . P.try $ do
209+ members <- P.option [] $ do
210210 indented *> reserved "where"
211211 mark (P.many (same *> positioned parseValueDeclaration))
212212 return $ instanceDecl (ExplicitInstance members)