Skip to content
Snippets Groups Projects
Commit 5201501d authored by Mikhail Glushenkov's avatar Mikhail Glushenkov
Browse files

Merge pull request #2828 from snoyberg/has-upper-lower-bound

Add hasUpperBound and hasLowerBound
parents 74e8ebfe 63d8fdb7
No related branches found
No related tags found
No related merge requests found
...@@ -44,6 +44,8 @@ module Distribution.Version ( ...@@ -44,6 +44,8 @@ module Distribution.Version (
simplifyVersionRange, simplifyVersionRange,
foldVersionRange, foldVersionRange,
foldVersionRange', foldVersionRange',
hasUpperBound,
hasLowerBound,
-- ** Modification -- ** Modification
removeUpperBound, removeUpperBound,
...@@ -805,3 +807,29 @@ instance Text VersionRange where ...@@ -805,3 +807,29 @@ instance Text VersionRange where
(">", LaterVersion), (">", LaterVersion),
(">=", orLaterVersion), (">=", orLaterVersion),
("==", ThisVersion) ] ("==", ThisVersion) ]
-- | Does the version range have an upper bound?
--
-- @since 1.24.0.0
hasUpperBound :: VersionRange -> Bool
hasUpperBound AnyVersion = False
hasUpperBound (ThisVersion _) = True
hasUpperBound (LaterVersion _) = False
hasUpperBound (EarlierVersion _) = True
hasUpperBound (WildcardVersion _) = True
hasUpperBound (UnionVersionRanges x y) = hasUpperBound x && hasUpperBound y
hasUpperBound (IntersectVersionRanges x y) = hasUpperBound x || hasUpperBound y
hasUpperBound (VersionRangeParens x) = hasUpperBound x
-- | Does the version range have a lower bound?
--
-- @since 1.24.0.0
hasLowerBound :: VersionRange -> Bool
hasLowerBound AnyVersion = False
hasLowerBound (ThisVersion _) = True
hasLowerBound (LaterVersion _) = True
hasLowerBound (EarlierVersion _) = False
hasLowerBound (WildcardVersion _) = True
hasLowerBound (UnionVersionRanges x y) = hasLowerBound x && hasLowerBound y
hasLowerBound (IntersectVersionRanges x y) = hasLowerBound x || hasLowerBound y
hasLowerBound (VersionRangeParens x) = hasLowerBound x
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment