on master help sign in
Slightly improve errors for issue #513

Does not work in all cases because the `spacePrefix` function tries things.

commit15d87f2192ef9f9f6e034c46298e20a26ddba224 authorEvan Czaplicki <info@elm-lang.org> dateWed 26 Mar 2014, 19:43 (13 years ago) parent9943120
1 file changed+5−3
compiler/Parse/Helpers.hs+5−3
compiler/Parse/Helpers.hs+5−3
@@ -79,9 +79,11 @@ innerVarChar :: IParser Char
7979innerVarChar = alphaNum <|> char '_' <|> char '\'' <?> ""
8080
8181makeVar :: IParser Char -> IParser String
82−makeVar p = do v <- (:) <$> p <*> many innerVarChar
83− guard (v `notElem` reserveds)
84− return v
82+makeVar p = do
83+ v <- (:) <$> p <*> many innerVarChar
84+ if v `elem` reserveds
85+ then fail $ "unexpected keyword '" ++ v ++ "', variables cannot be keywords"
86+ else return v
8587
8688reserved :: String -> IParser String
8789reserved word =