megaparsec 5.1.1 → 5.1.2
raw patch · 4 files changed
+35/−19 lines, 4 filesdep ~megaparsec
Dependency ranges changed: megaparsec
Files
- CHANGELOG.md +7/−0
- Text/Megaparsec/Error.hs +9/−4
- megaparsec.cabal +3/−3
- tests/Text/Megaparsec/PrimSpec.hs +16/−12
CHANGELOG.md view
@@ -1,3 +1,10 @@+## Megaparsec 5.1.2++* Stopped using property tests with `dbg` helper to avoid flood of debugging+ info when test suite is run.++* Fixed the build with `QuickCheck` versions older than 2.9.0.+ ## Megaparsec 5.1.1 * Exported the `observing` primitive from `Text.Megaparsec`.
Text/Megaparsec/Error.hs view
@@ -175,15 +175,20 @@ instance (Arbitrary t, Ord t, Arbitrary e, Ord e) => Arbitrary (ParseError t e) where arbitrary = ParseError- <$>-#if !MIN_VERSION_QuickCheck(2,9,0)- (NE.fromList . getNonEmpty <$> arbitrary)+#if MIN_VERSION_QuickCheck(2,9,0)+ <$> arbitrary #else- arbitrary+ <$> (NE.fromList . getNonEmpty <$> arbitrary) #endif+#if MIN_VERSION_QuickCheck(2,8,2) <*> arbitrary <*> arbitrary <*> arbitrary+#else+ <*> (E.fromList <$> arbitrary)+ <*> (E.fromList <$> arbitrary)+ <*> (E.fromList <$> arbitrary)+#endif -- | Merge two error data structures into one joining their collections of -- message items and preferring longest match. In other words, earlier error
megaparsec.cabal view
@@ -27,7 +27,7 @@ -- POSSIBILITY OF SUCH DAMAGE. name: megaparsec-version: 5.1.1+version: 5.1.2 cabal-version: >= 1.10 license: BSD2 license-file: LICENSE.md@@ -124,7 +124,7 @@ , exceptions >= 0.6 && < 0.9 , hspec >= 2.0 && < 3.0 , hspec-expectations >= 0.5 && < 0.8- , megaparsec >= 5.1.1+ , megaparsec >= 5.1.2 , mtl >= 2.0 && < 3.0 , scientific >= 0.3.1 && < 0.4 , text >= 0.2 && < 1.3@@ -150,7 +150,7 @@ build-depends: base >= 4.6 && < 5.0 , bytestring >= 0.10 && < 0.11 , criterion >= 0.6.2.1 && < 1.2- , megaparsec >= 5.1.1+ , megaparsec >= 5.1.2 , text >= 0.2 && < 1.3 default-language: Haskell2010
tests/Text/Megaparsec/PrimSpec.hs view
@@ -72,6 +72,12 @@ import qualified Data.Text as T import qualified Data.Text.Lazy as TL +#if !MIN_VERSION_QuickCheck(2,8,2)+instance (Arbitrary a, Ord a) => Arbitrary (E.Set a) where+ arbitrary = E.fromList <$> arbitrary+ shrink = fmap E.fromList . shrink . E.toList+#endif+ spec :: Spec spec = do @@ -1204,12 +1210,11 @@ s = "ab" prs p s `shouldParse` 'a' prs' p s `succeedsLeaving` "b"- it "its hints are preserved" $- property $ \a b as -> a /= b ==> do- let p = dbg "many chars" (many (char a)) <* empty- s = a : b : as- prs p s `shouldFailWith` err (posN (1 :: Int) s) (etok a)- prs' p s `failsLeaving` (b:as)+ it "its hints are preserved" $ do+ let p = dbg "many chars" (many (char 'a')) <* empty+ s = "abcd"+ prs p s `shouldFailWith` err (posN (1 :: Int) s) (etok 'a')+ prs' p s `failsLeaving` "bcd" context "when inner parser fails consuming input" $ it "has no effect on how parser works" $ do let p = dbg "chars" (char 'a' *> char 'c')@@ -1222,12 +1227,11 @@ s = "abc" prs p s `shouldParse` 'a' prs' p s `succeedsLeaving` s- it "its hints are preserved" $- property $ \a b as -> a /= b ==> do- let p = dbg "many chars" (many (char a)) <* empty- s = b : as- prs p s `shouldFailWith` err posI (etok a)- prs' p s `failsLeaving` (b:as)+ it "its hints are preserved" $ do+ let p = dbg "many chars" (many (char 'a')) <* empty+ s = "bcd"+ prs p s `shouldFailWith` err posI (etok 'a')+ prs' p s `failsLeaving` "bcd" context "when inner parser fails without consuming" $ it "has no effect on how parser works" $ do let p = dbg "empty" (void empty)