summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/prelude/PrelInfo.hs3
-rw-r--r--ghc/GHCi/UI.hs2
-rw-r--r--testsuite/tests/ghci.debugger/scripts/T16700.hs6
-rw-r--r--testsuite/tests/ghci.debugger/scripts/T16700.script4
-rw-r--r--testsuite/tests/ghci.debugger/scripts/T16700.stdout7
-rw-r--r--testsuite/tests/ghci.debugger/scripts/all.T1
-rw-r--r--testsuite/tests/ghci/scripts/ghci059.stdout3
7 files changed, 23 insertions, 3 deletions
diff --git a/compiler/prelude/PrelInfo.hs b/compiler/prelude/PrelInfo.hs
index aab23de20f..8ff9b19b45 100644
--- a/compiler/prelude/PrelInfo.hs
+++ b/compiler/prelude/PrelInfo.hs
@@ -214,7 +214,8 @@ knownNamesInfo :: NameEnv SDoc
knownNamesInfo = unitNameEnv coercibleTyConName $
vcat [ text "Coercible is a special constraint with custom solving rules."
, text "It is not a class."
- , text "Please see section 9.14.4 of the user's guide for details." ]
+ , text "Please see section `The Coercible constraint`"
+ , text "of the user's guide for details." ]
{-
We let a lot of "non-standard" values be visible, so that we can make
diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs
index 6929ee8a32..7b64644526 100644
--- a/ghc/GHCi/UI.hs
+++ b/ghc/GHCi/UI.hs
@@ -3570,7 +3570,7 @@ forwardCmd :: GhciMonad m => String -> m ()
forwardCmd arg
| null arg = forward 1
| all isDigit arg = forward (read arg)
- | otherwise = liftIO $ putStrLn "Syntax: :back [num]"
+ | otherwise = liftIO $ putStrLn "Syntax: :forward [num]"
where
forward num = withSandboxOnly ":forward" $ do
(names, ix, pan, _) <- GHC.forward num
diff --git a/testsuite/tests/ghci.debugger/scripts/T16700.hs b/testsuite/tests/ghci.debugger/scripts/T16700.hs
new file mode 100644
index 0000000000..1a2ceb029f
--- /dev/null
+++ b/testsuite/tests/ghci.debugger/scripts/T16700.hs
@@ -0,0 +1,6 @@
+qsort :: [Int] -> [Int]
+qsort [] = []
+qsort (a:as) = qsort left ++ [a] ++ qsort right
+ where (left,right) = (filter (<=a) as, filter (>a) as)
+
+main = print $ qsort [4, 1, 7, 10, 3]
diff --git a/testsuite/tests/ghci.debugger/scripts/T16700.script b/testsuite/tests/ghci.debugger/scripts/T16700.script
new file mode 100644
index 0000000000..7328cb4b4d
--- /dev/null
+++ b/testsuite/tests/ghci.debugger/scripts/T16700.script
@@ -0,0 +1,4 @@
+:l T16700.hs
+:break 3
+:main
+:forward x
diff --git a/testsuite/tests/ghci.debugger/scripts/T16700.stdout b/testsuite/tests/ghci.debugger/scripts/T16700.stdout
new file mode 100644
index 0000000000..d9fd775230
--- /dev/null
+++ b/testsuite/tests/ghci.debugger/scripts/T16700.stdout
@@ -0,0 +1,7 @@
+Breakpoint 0 activated at T16700.hs:3:16-47
+Stopped in Main.qsort, T16700.hs:3:16-47
+_result :: [Int] = _
+a :: Int = 4
+left :: [Int] = _
+right :: [Int] = _
+Syntax: :forward [num]
diff --git a/testsuite/tests/ghci.debugger/scripts/all.T b/testsuite/tests/ghci.debugger/scripts/all.T
index 7240594823..5708b631fb 100644
--- a/testsuite/tests/ghci.debugger/scripts/all.T
+++ b/testsuite/tests/ghci.debugger/scripts/all.T
@@ -108,5 +108,6 @@ 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('T16700', normal, ghci_script, ['T16700.script'])
test('break029', extra_files(['break029.hs']), ghci_script, ['break029.script'])
diff --git a/testsuite/tests/ghci/scripts/ghci059.stdout b/testsuite/tests/ghci/scripts/ghci059.stdout
index 7e734f1ccc..2fc93e6de5 100644
--- a/testsuite/tests/ghci/scripts/ghci059.stdout
+++ b/testsuite/tests/ghci/scripts/ghci059.stdout
@@ -1,7 +1,8 @@
{-
Coercible is a special constraint with custom solving rules.
It is not a class.
-Please see section 9.14.4 of the user's guide for details.
+Please see section `The Coercible constraint`
+of the user's guide for details.
-}
type role Coercible representational representational
class Coercible a b => Coercible (a :: k) (b :: k)