on master help sign in
Fixed parsing error due to parsing an expression without a left

component

commite96836a55acf20433a0d4164545614b1b27ea5ad authorAhmad Salim Al-Sibahi <asal@itu.dk> dateWed 30 Dec 2015, 19:59 (11 years ago) parentd77753d
1 file changed+4−5
src/Idris/ParseExpr.hs+4−5
src/Idris/ParseExpr.hs+4−5
@@ -488,14 +488,13 @@ bracketed' open syn =
488488{-| Parses the rest of a dependent pair after '(' or '(Expr **' -}
489489dependentPair :: PunInfo -> [(PTerm, Maybe (FC, PTerm), FC)] -> FC -> SyntaxInfo -> IdrisParser PTerm
490490dependentPair pun prev openFC syn =
491+ if prev == [] then
492+ nametypePart <|> namePart
493+ else
491494 case pun of
492495 IsType -> nametypePart <|> namePart <|> exprPart True
493496 IsTerm -> exprPart False
494− TypeOrTerm ->
495− if prev /= [] then -- To avoid ambiguity with later parsing
496− nametypePart <|> namePart
497− else
498− nametypePart <|> namePart <|> exprPart False
497+ TypeOrTerm -> nametypePart <|> namePart <|> exprPart False
499498 where nametypePart = do
500499 (ln, lnfc, colonFC) <- try $ do
501500 (ln, lnfc) <- name