summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorVladislav Zavialov <vlad.z.4096@gmail.com>2021-04-06 15:51:38 +0300
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-05-23 18:53:13 -0400
commitd82d38239f232c3970a8641bb6d47d436e3cbc11 (patch)
tree55b162143144486cddda1b2a2a7ca0b7eb373a1c /testsuite
parent82c6a9394b0457e77bc8b03e3594111b51508469 (diff)
downloadhaskell-d82d38239f232c3970a8641bb6d47d436e3cbc11.tar.gz
Introduce Strict.Maybe, Strict.Pair (#19156)
This patch fixes a space leak related to the use of Maybe in RealSrcSpan by introducing a strict variant of Maybe. In addition to that, it also introduces a strict pair and uses the newly introduced strict data types in a few other places (e.g. the lexer/parser state) to reduce allocations. Includes a regression test.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/ghc-api/T19156.hs7
-rw-r--r--testsuite/tests/ghc-api/all.T2
-rw-r--r--testsuite/tests/parser/should_run/CountAstDeps.stdout3
-rw-r--r--testsuite/tests/parser/should_run/CountParserDeps.stdout3
4 files changed, 9 insertions, 6 deletions
diff --git a/testsuite/tests/ghc-api/T19156.hs b/testsuite/tests/ghc-api/T19156.hs
index 999c1af242..21aad3f196 100644
--- a/testsuite/tests/ghc-api/T19156.hs
+++ b/testsuite/tests/ghc-api/T19156.hs
@@ -4,14 +4,15 @@
import GHC.Exts.Heap
import GHC.Types.SrcLoc
+import qualified GHC.Data.Strict as Strict
rsl :: RealSrcLoc
rsl = mkRealSrcLoc "Foo" 1 1
main = do
- let !s1 = RealSrcLoc rsl (Just (BufPos 999222))
- !s2 = RealSrcLoc rsl (Just (BufPos 999333))
- !s3 = RealSrcLoc rsl (Just (BufPos 999444))
+ let !s1 = RealSrcLoc rsl (Strict.Just (BufPos 999222))
+ !s2 = RealSrcLoc rsl (Strict.Just (BufPos 999333))
+ !s3 = RealSrcLoc rsl (Strict.Just (BufPos 999444))
!res = combineSrcSpans (combineSrcSpans (srcLocSpan s1) (srcLocSpan s2)) (srcLocSpan s3)
cs <- unbox res
diff --git a/testsuite/tests/ghc-api/all.T b/testsuite/tests/ghc-api/all.T
index 00e158516e..9ee14ba3ae 100644
--- a/testsuite/tests/ghc-api/all.T
+++ b/testsuite/tests/ghc-api/all.T
@@ -24,6 +24,6 @@ test('T18522-dbg-ppr',
extra_run_opts('"' + config.libdir + '"'),
compile_and_run,
['-package ghc'])
-test('T19156', [extra_run_opts('"' + config.libdir + '"'), expect_broken(19156)],
+test('T19156', extra_run_opts('"' + config.libdir + '"'),
compile_and_run,
['-package ghc'])
diff --git a/testsuite/tests/parser/should_run/CountAstDeps.stdout b/testsuite/tests/parser/should_run/CountAstDeps.stdout
index 242076d90c..c898dd7424 100644
--- a/testsuite/tests/parser/should_run/CountAstDeps.stdout
+++ b/testsuite/tests/parser/should_run/CountAstDeps.stdout
@@ -1,4 +1,4 @@
-Found 257 Language.Haskell.Syntax module dependencies
+Found 258 Language.Haskell.Syntax module dependencies
GHC.Builtin.Names
GHC.Builtin.PrimOps
GHC.Builtin.Types
@@ -76,6 +76,7 @@ GHC.Data.Maybe
GHC.Data.OrdList
GHC.Data.Pair
GHC.Data.Stream
+GHC.Data.Strict
GHC.Data.StringBuffer
GHC.Data.TrieMap
GHC.Driver.Backend
diff --git a/testsuite/tests/parser/should_run/CountParserDeps.stdout b/testsuite/tests/parser/should_run/CountParserDeps.stdout
index c08cd67a52..05d6073262 100644
--- a/testsuite/tests/parser/should_run/CountParserDeps.stdout
+++ b/testsuite/tests/parser/should_run/CountParserDeps.stdout
@@ -1,4 +1,4 @@
-Found 263 GHC.Parser module dependencies
+Found 264 GHC.Parser module dependencies
GHC.Builtin.Names
GHC.Builtin.PrimOps
GHC.Builtin.Types
@@ -76,6 +76,7 @@ GHC.Data.Maybe
GHC.Data.OrdList
GHC.Data.Pair
GHC.Data.Stream
+GHC.Data.Strict
GHC.Data.StringBuffer
GHC.Data.TrieMap
GHC.Driver.Backend