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 (
simplifyVersionRange,
foldVersionRange,
foldVersionRange',
hasUpperBound,
hasLowerBound,
-- ** Modification
removeUpperBound,
......@@ -805,3 +807,29 @@ instance Text VersionRange where
(">", LaterVersion),
(">=", orLaterVersion),
("==", 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