diff options
author | Simon Marlow <marlowsd@gmail.com> | 2018-07-22 17:03:33 +0200 |
---|---|---|
committer | Krzysztof Gogolewski <krz.gogolewski@gmail.com> | 2018-07-22 17:03:34 +0200 |
commit | 4ea9311cc5c3b99ea6915bee23f0a6776731f20e (patch) | |
tree | 0cad7a50332dab608357397f7869cb8eb364b2ac /testsuite/tests/ghci.debugger | |
parent | 5a49651f3161473b383ec497af38e9daa022b9ac (diff) | |
download | haskell-4ea9311cc5c3b99ea6915bee23f0a6776731f20e.tar.gz |
Fix the GHCi debugger with ApplicativeDo
Summary:
`collectLStmtsBinders` was returning nothing for `ApplicativeStmts`, which
caused the debugger to not track free variables in many cases when using
`ApplicativeDo`.
Test Plan:
* new test case
* validate
Reviewers: bgamari, erikd
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #15422
Differential Revision: https://phabricator.haskell.org/D4991
Diffstat (limited to 'testsuite/tests/ghci.debugger')
4 files changed, 23 insertions, 0 deletions
diff --git a/testsuite/tests/ghci.debugger/scripts/all.T b/testsuite/tests/ghci.debugger/scripts/all.T index 496c637fc6..733631180d 100644 --- a/testsuite/tests/ghci.debugger/scripts/all.T +++ b/testsuite/tests/ghci.debugger/scripts/all.T @@ -105,3 +105,5 @@ test('T8557', normal, ghci_script, ['T8557.script']) test('T12458', normal, ghci_script, ['T12458.script']) test('T13825-debugger', when(arch('powerpc64'), expect_broken(14455)), ghci_script, ['T13825-debugger.script']) + +test('break029', extra_files(['break029.hs']), ghci_script, ['break029.script']) diff --git a/testsuite/tests/ghci.debugger/scripts/break029.hs b/testsuite/tests/ghci.debugger/scripts/break029.hs new file mode 100644 index 0000000000..7598d3f4b3 --- /dev/null +++ b/testsuite/tests/ghci.debugger/scripts/break029.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE ApplicativeDo #-} + +f :: Int -> IO Int +f x = do + y <- return (x + 1) + return (y * 2) diff --git a/testsuite/tests/ghci.debugger/scripts/break029.script b/testsuite/tests/ghci.debugger/scripts/break029.script new file mode 100644 index 0000000000..b2e70b1ba5 --- /dev/null +++ b/testsuite/tests/ghci.debugger/scripts/break029.script @@ -0,0 +1,5 @@ +:load break029.hs +:step f 3 +:step +:step +y diff --git a/testsuite/tests/ghci.debugger/scripts/break029.stdout b/testsuite/tests/ghci.debugger/scripts/break029.stdout new file mode 100644 index 0000000000..c1d7047a8e --- /dev/null +++ b/testsuite/tests/ghci.debugger/scripts/break029.stdout @@ -0,0 +1,10 @@ +Stopped in Main.f, break029.hs:(4,7)-(6,16) +_result :: IO Int = _ +x :: Int = 3 +Stopped in Main.f, break029.hs:5:8-21 +_result :: IO Int = _ +x :: Int = 3 +Stopped in Main.f, break029.hs:6:11-15 +_result :: Int = _ +y :: Int = _ +4 |