on master help sign in
Fixed parsing error due to parsing an expression without a left
e96836aAhmad Salim Al-Sibahi
src/Idris/ParseExpr.hs+4−5
@@ -488,14 +488,13 @@ bracketed' open syn =
488{-| Parses the rest of a dependent pair after '(' or '(Expr **' -}
488{-| Parses the rest of a dependent pair after '(' or '(Expr **' -}
489dependentPair :: PunInfo -> [(PTerm, Maybe (FC, PTerm), FC)] -> FC -> SyntaxInfo -> IdrisParser PTerm
489dependentPair :: PunInfo -> [(PTerm, Maybe (FC, PTerm), FC)] -> FC -> SyntaxInfo -> IdrisParser PTerm
490dependentPair pun prev openFC syn =
490dependentPair pun prev openFC syn =
491+ if prev == [] then
492+ nametypePart <|> namePart
493+ else
491 case pun of
494 case pun of
492 IsType -> nametypePart <|> namePart <|> exprPart True
495 IsType -> nametypePart <|> namePart <|> exprPart True
493 IsTerm -> exprPart False
496 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
499 where nametypePart = do
498 where nametypePart = do
500 (ln, lnfc, colonFC) <- try $ do
499 (ln, lnfc, colonFC) <- try $ do
501 (ln, lnfc) <- name
500 (ln, lnfc) <- name