Skip to content

Commit a8050fc

Browse files
committed
feat(cabal-install): add parser for UserQualExe
1 parent af46dba commit a8050fc

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,9 +723,10 @@ instance Parsec UserConstraint where
723723

724724
withColon :: PackageName -> m UserConstraintQualifier
725725
withColon pn =
726-
UserQualified (UserQualSetup pn)
727-
<$ P.string "setup."
728-
<*> parsec
726+
P.choice
727+
[ UserQualified (UserQualSetup pn) <$> (P.string "setup." *> parsec)
728+
, UserQualified . UserQualExe pn <$> (P.string "exe:" *> parsec) <*> (P.char '.' *> parsec)
729+
]
729730

730731
-- >>> eitherParsec "foo > 1.2.3.4" :: Either String UserConstraint
731732
-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified UserQualToplevel (PackageName "foo"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
@@ -747,3 +748,6 @@ instance Parsec UserConstraint where
747748
--
748749
-- >>> eitherParsec "build:ghc-internal installed" :: Either String UserConstraint
749750
-- Right (UserConstraintX (UserConstraintScope (Just Build) (UserQualified UserQualToplevel (PackageName "ghc-internal"))) PackagePropertyInstalled)
751+
--
752+
-- >>> eitherParsec "foo:exe:bar.baz > 1.2.3.4" :: Either String UserConstraint
753+
-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified (UserQualExe (PackageName "foo") (PackageName "bar")) (PackageName "baz"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))

0 commit comments

Comments
 (0)