Skip to content

Commit 2ebc586

Browse files
committed
feat(cabal-install): add parser for UserQualExe
1 parent 0bf4b33 commit 2ebc586

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

cabal-install/src/Distribution/Client/Targets.hs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -721,10 +721,10 @@ instance Parsec UserConstraint where
721721
| otherwise = P.unexpected $ "constraint scope: " ++ unPackageName pn
722722

723723
withColon :: PackageName -> m UserConstraintQualifier
724-
withColon pn =
725-
UserQualified (UserQualSetup pn)
726-
<$ P.string "setup."
727-
<*> parsec
724+
withColon pn = P.choice
725+
[ UserQualified (UserQualSetup pn) <$> (P.string "setup." *> parsec)
726+
, UserQualified . UserQualExe pn <$> (P.string "exe:" *> parsec) <*> (P.char '.' *> parsec)
727+
]
728728

729729
-- >>> eitherParsec "foo > 1.2.3.4" :: Either String UserConstraint
730730
-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified UserQualToplevel (PackageName "foo"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
@@ -746,3 +746,6 @@ instance Parsec UserConstraint where
746746
--
747747
-- >>> eitherParsec "build:ghc-internal installed" :: Either String UserConstraint
748748
-- Right (UserConstraintX (UserConstraintScope (Just Build) (UserQualified UserQualToplevel (PackageName "ghc-internal"))) PackagePropertyInstalled)
749+
--
750+
-- >>> eitherParsec "foo:exe:bar.baz > 1.2.3.4" :: Either String UserConstraint
751+
-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified (UserQualExe (PackageName "foo") (PackageName "bar")) (PackageName "baz"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))

0 commit comments

Comments
 (0)