summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-02-25 06:35:10 +0000
committerMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2014-02-25 06:35:49 +0000
commitede5b5180c2a5db3f51b01dbef402d21ace9601c (patch)
tree80954039a27b55f8dee50bc6c7f916ec7c0b7250
parent4f69b1e23cc9538241e895be4dbee0a0a0fd8396 (diff)
downloadhaskell-ede5b5180c2a5db3f51b01dbef402d21ace9601c.tar.gz
Make Outputable instance for HsDocString useful
Seeing "<document comment>" when trying to debug things in Haddock is utterly useless and because this instance exists, we can't even make our own. No instance at all would be better than what it was! Admittedly, this doesn't produce the nicest output. Perhaps wrapping the comments in {- -} would be in order but I think it's fine until someone complains.
-rw-r--r--compiler/hsSyn/HsDoc.hs2
-rw-r--r--testsuite/tests/haddock/haddock_examples/haddock.Test.stderr103
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA014.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA015.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA016.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA018.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA019.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA020.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA021.stderr4
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA023.stderr17
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA024.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA025.stderr2
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA026.stderr17
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA027.stderr21
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA028.stderr3
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA029.stderr3
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA030.stderr3
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA031.stderr18
-rw-r--r--testsuite/tests/haddock/should_compile_flag_haddock/haddockA032.stderr8
19 files changed, 120 insertions, 95 deletions
diff --git a/compiler/hsSyn/HsDoc.hs b/compiler/hsSyn/HsDoc.hs
index 1f3adafec1..2cb28540f9 100644
--- a/compiler/hsSyn/HsDoc.hs
+++ b/compiler/hsSyn/HsDoc.hs
@@ -20,7 +20,7 @@ newtype HsDocString = HsDocString FastString
type LHsDocString = Located HsDocString
instance Outputable HsDocString where
- ppr _ = text "<document comment>"
+ ppr (HsDocString fs) = ftext fs
ppr_mbDoc :: Maybe LHsDocString -> SDoc
ppr_mbDoc (Just doc) = ppr doc
diff --git a/testsuite/tests/haddock/haddock_examples/haddock.Test.stderr b/testsuite/tests/haddock/haddock_examples/haddock.Test.stderr
index 37a2565a4e..097b6ef1dd 100644
--- a/testsuite/tests/haddock/haddock_examples/haddock.Test.stderr
+++ b/testsuite/tests/haddock/haddock_examples/haddock.Test.stderr
@@ -17,50 +17,74 @@ hidden a = a
[3 of 3] Compiling Test ( Test.hs, Test.o )
==================== Parser ====================
-<document comment>
+
+ Module : Test
+ Copyright : (c) Simon Marlow 2002
+ License : BSD-style
+
+ Maintainer : libraries@haskell.org
+ Stability : provisional
+ Portability : portable
+
+ This module illustrates & tests most of the features of Haddock.
+ Testing references from the description: 'T', 'f', 'g', 'Visible.visible'.
+
module Test (
<IEGroup: 1>, <IEGroup: 2>, T(..), T2, T3(..), T4(..), T5(..),
T6(..), N1(..), N2(..), N3(..), N4, N5(..), N6(..), N7(..),
- <IEGroup: 2>, R(..), R1(..), <document comment>, p, q, u,
- <IEGroup: 1>, C(a, b), D(..), E, F(..), <document comment>, a,
+ <IEGroup: 2>, R(..), R1(..),
+ test that we can export record selectors on their own:, p, q, u,
+ <IEGroup: 1>, C(a, b), D(..), E, F(..),
+ Test that we can export a class method on its own:, a,
<IEGroup: 1>, f, g, <IEGroup: 1>, <IEDocNamed: aux1>,
<IEDocNamed: aux2>, <IEDocNamed: aux3>, <IEDocNamed: aux4>,
<IEDocNamed: aux5>, <IEDocNamed: aux6>, <IEDocNamed: aux7>,
<IEDocNamed: aux8>, <IEDocNamed: aux9>, <IEDocNamed: aux10>,
- <IEDocNamed: aux11>, <IEDocNamed: aux12>, <document comment>,
+ <IEDocNamed: aux11>, <IEDocNamed: aux12>,
+ This is some inline documentation in the export list
+
+ > a code block using bird-tracks
+ > each line must begin with > (which isn't significant unless it
+ > is at the beginning of the line).,
<IEGroup: 1>, module Hidden, <IEGroup: 1>, module Visible,
- <document comment>, <IEGroup: 1>, Ex(..), <IEGroup: 1>, k, l, m, o,
- <IEGroup: 1>, <IEGroup: 2>, <document comment>, f'
+ nested-style doc comments , <IEGroup: 1>, Ex(..), <IEGroup: 1>, k,
+ l, m, o, <IEGroup: 1>, <IEGroup: 2>,
+
+ > a literal line
+
+ $ a non /literal/ line $
+, f'
) where
import Hidden
import Visible
<document comment>
data T a b
- = <document comment> A Int (Maybe Float) |
- <document comment> B (T a b, T Int Float)
+ = This comment describes the 'A' constructor A Int (Maybe Float) |
+ This comment describes the 'B' constructor B (T a b, T Int Float)
<document comment>
data T2 a b = T2 a b
<document comment>
data T3 a b = A1 a | B1 b
data T4 a b = A2 a | B2 b
-data T5 a b = <document comment> A3 a | <document comment> B3 b
+data T5 a b = documents 'A3' A3 a | documents 'B3' B3 b
<document comment>
data T6
- = <document comment> A4 |
- <document comment> B4 |
- <document comment> C4
+ = This is the doc for 'A4' A4 |
+ This is the doc for 'B4' B4 |
+ This is the doc for 'C4' C4
<document comment>
newtype N1 a = N1 a
<document comment>
newtype N2 a b = N2 {n :: a b}
<document comment>
-newtype N3 a b = N3 {n3 :: a b <document comment>}
+newtype N3 a b = N3 {n3 :: a b this is the 'n3' field }
<document comment>
newtype N4 a b = N4 a
-newtype N5 a b = N5 {n5 :: a b <document comment>}
-newtype N6 a b = <document comment> N6 {n6 :: a b}
+newtype N5 a b
+ = N5 {n5 :: a b no docs on the datatype or the constructor}
+newtype N6 a b = docs on the constructor only N6 {n6 :: a b}
<document comment>
-newtype N7 a b = <document comment> N7 {n7 :: a b}
+newtype N7 a b = The 'N7' constructor N7 {n7 :: a b}
class D a => C a where
a :: IO a
b :: [a]
@@ -83,22 +107,22 @@ class F a where
ff :: a
<document comment>
data R
- = <document comment>
- C1 {p :: Int <document comment>,
- q :: forall a. a -> a <document comment>,
- r :: Int <document comment>,
- s :: Int <document comment>} |
- <document comment>
+ = This is the 'C1' record constructor, with the following fields:
+ C1 {p :: Int This comment applies to the 'p' field,
+ q :: forall a. a -> a This comment applies to the 'q' field,
+ r :: Int This comment applies to both 'r' and 's',
+ s :: Int This comment applies to both 'r' and 's'} |
+ This is the 'C2' record constructor, also with some fields:
C2 {t :: T1
-> (T2 Int Int) -> (T3 Bool Bool) -> (T4 Float Float) -> T5 () (),
u :: Int,
v :: Int}
<document comment>
data R1
- = <document comment>
- C3 {s1 :: Int <document comment>,
- s2 :: Int <document comment>,
- s3 :: Int <document comment>}
+ = This is the 'C3' record constructor
+ C3 {s1 :: Int The 's1' record selector,
+ s2 :: Int The 's2' record selector,
+ s3 :: Int The 's3' record selector}
<document comment>
<document comment>
<document comment>
@@ -129,19 +153,26 @@ data Ex a
Ex4 (forall a. a -> a)
<document comment>
k ::
- T () () <document comment>
- -> (T2 Int Int) <document comment>
- -> (T3 Bool Bool -> T4 Float Float) <document comment>
- -> T5 () () <document comment> -> IO () <document comment>
-l :: (Int, Int, Float) <document comment> -> Int <document comment>
-<document comment>
-m :: R -> N1 () <document comment> -> IO Int <document comment>
-<document comment>
-newn :: R <document comment> -> N1 () <document comment> -> IO Int
+ T () () This argument has type 'T'
+ -> (T2 Int Int) This argument has type 'T2 Int Int'
+ -> (T3 Bool Bool
+ -> T4 Float Float) This argument has type @T3 Bool Bool -> T4 Float Float@
+ -> T5 () () This argument has a very long description that should
+ hopefully cause some wrapping to happen when it is finally
+ rendered by Haddock in the generated HTML page.
+ -> IO () This is the result type
+l :: (Int, Int, Float) takes a triple -> Int returns an 'Int'
+<document comment>
+m ::
+ R -> N1 () one of the arguments -> IO Int and the return value
+<document comment>
+newn ::
+ R one of the arguments, an 'R'
+ -> N1 () one of the arguments -> IO Int
newn = undefined
<document comment>
foreign import ccall unsafe "static header.h o" o
- :: Float <document comment> -> IO Float <document comment>
+ :: Float The input float -> IO Float The output float
<document comment>
newp :: Int
newp = undefined
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA014.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA014.stderr
index f71f89a89e..a70f624278 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA014.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA014.stderr
@@ -1,6 +1,6 @@
==================== Parser ====================
-<document comment>
+ a header
module HeaderTest where
<document comment>
x = 0
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA015.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA015.stderr
index 356d5b73bf..3bfc17d811 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA015.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA015.stderr
@@ -1,6 +1,6 @@
==================== Parser ====================
-<document comment>
+ a header
module HeaderTest where
<document comment>
x = 0
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA016.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA016.stderr
index 1f436a7bec..48dd0870c9 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA016.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA016.stderr
@@ -1,6 +1,6 @@
==================== Parser ====================
-<document comment>
+Module description
module A where
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA018.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA018.stderr
index 1f436a7bec..2aa5245f50 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA018.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA018.stderr
@@ -1,6 +1,6 @@
==================== Parser ====================
-<document comment>
+ module header bla bla
module A where
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA019.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA019.stderr
index 68e7b4f225..ca316bc8b8 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA019.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA019.stderr
@@ -1,7 +1,7 @@
==================== Parser ====================
module A (
- <document comment>, <document comment>
+ bla bla, blabla
) where
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA020.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA020.stderr
index 20c628006d..2aaa3eba98 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA020.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA020.stderr
@@ -1,7 +1,7 @@
==================== Parser ====================
module A (
- <document comment>, <document comment>, x, <IEGroup: 2>, <document comment>
+ bla bla, blabla , x, <IEGroup: 2>, qweljqwelkqjwelqjkq
) where
x = True
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA021.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA021.stderr
index edf523dfa2..162c403b84 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA021.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA021.stderr
@@ -1,8 +1,8 @@
==================== Parser ====================
module A (
- <document comment>, <document comment>, x, <IEGroup: 2>, <document comment>, y,
- <document comment>, z, <IEGroup: 1>
+ bla bla, blabla , x, <IEGroup: 2>, qweljqwelkqjwelqjkq, y,
+ dkashdakj, z, <IEGroup: 1>
) where
x = True
y = False
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA023.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA023.stderr
index 2c4f5bc952..6d803bb440 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA023.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA023.stderr
@@ -1,10 +1,7 @@
-
-==================== Parser ====================
-module ShouldCompile where
-test ::
- Eq a =>
- [a] <document comment>
- -> [a] <document comment> -> [a] <document comment>
-test xs ys = xs
-
-
+
+==================== Parser ====================
+module ShouldCompile where
+test :: Eq a => [a] doc1 -> [a] doc2 -> [a] doc3
+test xs ys = xs
+
+
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA024.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA024.stderr
index f0d269d0b1..b3caa71b9e 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA024.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA024.stderr
@@ -1,7 +1,7 @@
==================== Parser ====================
module ShouldCompile where
-test2 :: a <document comment> -> b <document comment> -> a <document comment>
+test2 :: a doc1 -> b doc2 -> a doc 3
test2 x y = x
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA025.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA025.stderr
index 792da55155..472ec1a1eb 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA025.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA025.stderr
@@ -1,7 +1,7 @@
==================== Parser ====================
module ShouldCompile where
-test2 :: a <document comment> -> a
+test2 :: a doc1 -> a
test2 x = x
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA026.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA026.stderr
index e352980fd4..3e3cb12d10 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA026.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA026.stderr
@@ -1,10 +1,7 @@
-
-==================== Parser ====================
-module ShouldCompile where
-test ::
- Eq a =>
- [a] <document comment>
- -> forall b. [b] <document comment> -> [a] <document comment>
-test xs ys = xs
-
-
+
+==================== Parser ====================
+module ShouldCompile where
+test :: Eq a => [a] doc1 -> forall b. [b] doc2 -> [a] doc3
+test xs ys = xs
+
+
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA027.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA027.stderr
index 67bf6528c0..10e88d2bfc 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA027.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA027.stderr
@@ -1,11 +1,10 @@
-
-==================== Parser ====================
-module ShouldCompile where
-test ::
- [a] <document comment>
- -> forall b. Ord b =>
- [b] <document comment>
- -> forall c. Num c => [c] <document comment> -> [a]
-test xs ys zs = xs
-
-
+
+==================== Parser ====================
+module ShouldCompile where
+test ::
+ [a] doc1
+ -> forall b. Ord b =>
+ [b] doc2 -> forall c. Num c => [c] doc3 -> [a]
+test xs ys zs = xs
+
+
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA028.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA028.stderr
index 6d9a8b2181..fa0d7019c0 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA028.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA028.stderr
@@ -2,8 +2,7 @@
==================== Parser ====================
module ShouldCompile where
data (<-->) a b = Mk a b
-test ::
- [a] <document comment> -> (a <--> (b -> [a])) <document comment>
+test :: [a] doc1 -> (a <--> (b -> [a])) blabla
test xs ys = xs
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA029.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA029.stderr
index aa48d998ef..820ffa6708 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA029.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA029.stderr
@@ -1,6 +1,7 @@
==================== Parser ====================
module ShouldCompile where
-data A = <document comment> A | B | C | D
+data A
+ = A comment that documents the first constructor A | B | C | D
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA030.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA030.stderr
index c879d2244b..b0ef139199 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA030.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA030.stderr
@@ -1,6 +1,7 @@
==================== Parser ====================
module ShouldCompile where
-data A = <document comment> A | <document comment> B | <document comment> C | D
+data A
+ = comment for A A | comment for B B | comment for C C | D
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA031.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA031.stderr
index 75ac2945b8..1d033cd6d7 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA031.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA031.stderr
@@ -1,9 +1,9 @@
-
-==================== Parser ====================
-module ShouldCompile where
-data A
- = A |
- <document comment> forall a. B a a |
- <document comment> forall a. Num a => C a
-
-
+
+==================== Parser ====================
+module ShouldCompile where
+data A
+ = A |
+ comment for B forall a. B a a |
+ comment for C forall a. Num a => C a
+
+
diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA032.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA032.stderr
index 2b0e4d24af..5cf2d9b034 100644
--- a/testsuite/tests/haddock/should_compile_flag_haddock/haddockA032.stderr
+++ b/testsuite/tests/haddock/should_compile_flag_haddock/haddockA032.stderr
@@ -2,9 +2,9 @@
==================== Parser ====================
module ShouldCompile where
data R a
- = R {field1 :: a,
- field2 :: a <document comment>,
- field3 :: a <document comment>,
- field4 :: a <document comment>}
+ = R {field1 :: a,
+ field2 :: a comment for field2,
+ field3 :: a comment for field3,
+ field4 :: a comment for field4 }