@@ -627,6 +627,8 @@ data UserConstraintQualifier
627627 UserQualified UserQualifier PackageName
628628 | -- | Scope that applies to the package when it has a setup qualifier.
629629 UserAnySetupQualifier PackageName
630+ | -- | Scope that applies to the package when it has a setup qualifier.
631+ UserAnyExeQualifier PackageName
630632 | -- | Scope that applies to the package when it has any qualifier.
631633 UserAnyQualifier PackageName
632634 deriving (Eq , Show , Generic )
@@ -644,6 +646,8 @@ fromUserConstraintScope (UserConstraintScope mstage (UserQualified q pn)) =
644646 ConstraintScope mstage (ScopeQualified (fromUserQualifier q) pn)
645647fromUserConstraintScope (UserConstraintScope mstage (UserAnySetupQualifier pn)) =
646648 ConstraintScope mstage (ScopeAnySetupQualifier pn)
649+ fromUserConstraintScope (UserConstraintScope mstage (UserAnyExeQualifier pn)) =
650+ ConstraintScope mstage (ScopeAnyExeQualifier pn)
647651fromUserConstraintScope (UserConstraintScope mstage (UserAnyQualifier pn)) =
648652 ConstraintScope mstage (ScopeAnyQualifier pn)
649653
@@ -668,6 +672,7 @@ userConstraintPackageName (UserConstraintX (UserConstraintScope _stage qualifier
668672 scopePN (UserQualified _ pn) = pn
669673 scopePN (UserAnyQualifier pn) = pn
670674 scopePN (UserAnySetupQualifier pn) = pn
675+ scopePN (UserAnyExeQualifier pn) = pn
671676
672677userToPackageConstraint :: UserConstraint -> PackageConstraint
673678userToPackageConstraint (UserConstraintX scope prop) =
@@ -719,6 +724,7 @@ instance Parsec UserConstraint where
719724 withDot pn
720725 | pn == mkPackageName " any" = UserAnyQualifier <$> parsec
721726 | pn == mkPackageName " setup" = UserAnySetupQualifier <$> parsec
727+ | pn == mkPackageName " exe" = UserAnyExeQualifier <$> parsec
722728 | otherwise = P. unexpected $ " constraint scope: " ++ unPackageName pn
723729
724730 withColon :: PackageName -> m UserConstraintQualifier
@@ -734,20 +740,26 @@ instance Parsec UserConstraint where
734740-- >>> eitherParsec "foo ^>= 1.2.3.4" :: Either String UserConstraint
735741-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified UserQualToplevel (PackageName "foo"))) (PackagePropertyVersion (MajorBoundVersion (mkVersion [1,2,3,4]))))
736742--
743+ -- >>> eitherParsec "any.bar > 1.2.3.4" :: Either String UserConstraint
744+ -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnyQualifier (PackageName "bar"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
745+ --
746+ -- >>> eitherParsec "setup.bar > 1.2.3.4" :: Either String UserConstraint
747+ -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnySetupQualifier (PackageName "bar"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
748+ --
749+ -- >>> eitherParsec "exe.bar > 1.2.3.4" :: Either String UserConstraint
750+ -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnyExeQualifier (PackageName "bar"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
751+ --
737752-- >>> eitherParsec "foo:setup.bar > 1.2.3.4" :: Either String UserConstraint
738753-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified (UserQualSetup (PackageName "foo")) (PackageName "bar"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
739754--
740- -- >>> eitherParsec "setup.any source" :: Either String UserConstraint
741- -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnySetupQualifier (PackageName "any"))) PackagePropertySource)
742- --
743755-- >>> eitherParsec "build:rts source" :: Either String UserConstraint
744756-- Right (UserConstraintX (UserConstraintScope (Just Build) (UserQualified UserQualToplevel (PackageName "rts"))) PackagePropertySource)
745757--
746- -- >>> eitherParsec "setup. any installed " :: Either String UserConstraint
747- -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnySetupQualifier (PackageName "any "))) PackagePropertyInstalled )
758+ -- >>> eitherParsec "build: any.rts source " :: Either String UserConstraint
759+ -- Right (UserConstraintX (UserConstraintScope (Just Build) (UserAnyQualifier (PackageName "rts "))) PackagePropertySource )
748760--
749- -- >>> eitherParsec "build: ghc-internal installed" :: Either String UserConstraint
750- -- Right (UserConstraintX (UserConstraintScope (Just Build) (UserQualified UserQualToplevel (PackageName "ghc-internal"))) PackagePropertyInstalled)
761+ -- >>> eitherParsec "setup. ghc-internal installed" :: Either String UserConstraint
762+ -- Right (UserConstraintX (UserConstraintScope Nothing (UserAnySetupQualifier (PackageName "ghc-internal"))) PackagePropertyInstalled)
751763--
752764-- >>> eitherParsec "foo:exe:bar.baz > 1.2.3.4" :: Either String UserConstraint
753765-- Right (UserConstraintX (UserConstraintScope Nothing (UserQualified (UserQualExe (PackageName "foo") (PackageName "bar")) (PackageName "baz"))) (PackagePropertyVersion (LaterVersion (mkVersion [1,2,3,4]))))
0 commit comments