From 8d3df49ae1aa2eb58af530bba0c71817411fd49d Mon Sep 17 00:00:00 2001 From: jpmoresmau Date: Wed, 21 Jan 2015 21:31:24 +0100 Subject: support GHC 7.10: no Safe-Inferred, Foldable instance --- html-test/ref/A.html | 2 +- html-test/ref/AdvanceTypes.html | 2 +- html-test/ref/B.html | 2 +- html-test/ref/Bold.html | 2 +- html-test/ref/Bug1.html | 2 +- html-test/ref/Bug195.html | 4 ++-- html-test/ref/Bug2.html | 2 +- html-test/ref/Bug201.html | 2 +- html-test/ref/Bug26.html | 2 +- html-test/ref/Bug294.html | 2 +- html-test/ref/Bug298.html | 2 +- html-test/ref/Bug3.html | 2 +- html-test/ref/Bug308.html | 2 +- html-test/ref/Bug308CrossModule.html | 2 +- html-test/ref/Bug313.html | 2 +- html-test/ref/Bug335.html | 2 +- html-test/ref/Bug4.html | 2 +- html-test/ref/Bug6.html | 2 +- html-test/ref/Bug7.html | 2 +- html-test/ref/Bug8.html | 8 +++++--- html-test/ref/Bug85.html | 4 ++-- html-test/ref/BugDeprecated.html | 2 +- html-test/ref/BugExportHeadings.html | 2 +- html-test/ref/Bugs.html | 2 +- html-test/ref/CrossPackageDocs.html | 2 +- html-test/ref/DeprecatedClass.html | 2 +- html-test/ref/DeprecatedData.html | 2 +- html-test/ref/DeprecatedFunction.html | 2 +- html-test/ref/DeprecatedFunction2.html | 2 +- html-test/ref/DeprecatedFunction3.html | 2 +- html-test/ref/DeprecatedModule.html | 2 +- html-test/ref/DeprecatedModule2.html | 2 +- html-test/ref/DeprecatedNewtype.html | 2 +- html-test/ref/DeprecatedReExport.html | 2 +- html-test/ref/DeprecatedRecord.html | 2 +- html-test/ref/DeprecatedTypeFamily.html | 4 ++-- html-test/ref/DeprecatedTypeSynonym.html | 2 +- html-test/ref/Examples.html | 2 +- html-test/ref/Extensions.html | 2 +- html-test/ref/FunArgs.html | 2 +- html-test/ref/GADTRecords.html | 2 +- html-test/ref/Hash.html | 2 +- html-test/ref/HiddenInstances.html | 2 +- html-test/ref/HiddenInstancesB.html | 2 +- html-test/ref/Hyperlinks.html | 2 +- html-test/ref/IgnoreExports.html | 2 +- html-test/ref/ImplicitParams.html | 2 +- html-test/ref/Minimal.html | 2 +- html-test/ref/ModuleWithWarning.html | 2 +- html-test/ref/NamedDoc.html | 2 +- html-test/ref/Nesting.html | 2 +- html-test/ref/NoLayout.html | 2 +- html-test/ref/NonGreedy.html | 2 +- html-test/ref/Operators.html | 2 +- html-test/ref/PatternSyns.html | 2 +- html-test/ref/Properties.html | 2 +- html-test/ref/PruneWithWarning.html | 2 +- html-test/ref/SpuriousSuperclassConstraints.html | 2 +- html-test/ref/Test.html | 2 +- html-test/ref/Ticket253_1.html | 2 +- html-test/ref/Ticket253_2.html | 2 +- html-test/ref/Ticket61.html | 2 +- html-test/ref/Ticket75.html | 2 +- html-test/ref/TitledPicture.html | 2 +- html-test/ref/TypeFamilies.html | 2 +- html-test/ref/TypeFamilies2.html | 2 +- html-test/ref/TypeOperators.html | 2 +- html-test/ref/Unicode.html | 2 +- html-test/ref/Visible.html | 2 +- html-test/src/Bug8.hs | 1 + 70 files changed, 77 insertions(+), 74 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/A.html b/html-test/ref/A.html index 62f99ee0..96e2d001 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -35,7 +35,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");}; >Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Produced by Haddock version 2.15.0

version 2.16.0

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

(--->) :: [a] -> :: Foldable t0 => t0 t -> Typ -> Typ

Produced by Haddock version 2.15.0

version 2.16.0

Safe HaskellSafe-InferredSafe

Produced by Haddock version 2.15.0

version 2.16.0

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Produced by Haddock version 2.15.0

version 2.16.0

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafeSafe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

Safe HaskellSafe-InferredSafe

y = Type(s,[s,t]) +(--->) :: (Foldable t0) => t0 t -> Typ -> Typ (--->) = flip $ foldr (-->) s = undefined -- cgit v1.2.3 From 2c60cb0da855d76c57980298056cefe15ff4c226 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Thu, 22 Jan 2015 19:32:10 +0000 Subject: Update test files Test: a correct behaviour for fields comma-separating values. I'm surprised we had no bug open for this. Maybe it affects how #301 renders now but I doubt. Operators: Seems GHC is giving us a new order for operators, something must have changed on their side again. cc @haasn , this makes the fixity to the side not match the order on the LHS which is a bit unpleasant. Maybe the fixity can be made to match the GHC order? Bug335: We expand examples by default now. Bug310: Now inferred safe. --- html-test/ref/Bug310.html | 4 ++-- html-test/ref/Bug335.html | 6 +++--- html-test/ref/Operators.html | 16 ++++++++-------- html-test/ref/Test.html | 40 +++++----------------------------------- 4 files changed, 18 insertions(+), 48 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/Bug310.html b/html-test/ref/Bug310.html index 926d6cf2..c38af59c 100644 --- a/html-test/ref/Bug310.html +++ b/html-test/ref/Bug310.html @@ -35,7 +35,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug310.html");}; >Safe HaskellNoneSafe

Produced by Haddock version 2.15.1

version 2.16.0

ExF:

abc

ExG:

>>> 

Produced by Haddock version 2.15.1

version 2.16.0

(**>), (<**)(**<), (>**), (**<)(<**) :: a -> a -> ()

(**>), (<**), (>**), (**<), (>**), (<**) :: a -> a -> () infixr 8 **>, >**infixl 8 <**, **<infixl 8 **<, <**

Produced by Haddock version 2.15.0

version 2.16.0

  • r :: Int
  • , s :: Int
  • u :: Int
  • , v :: Int
    r :: Int

    This comment applies to both r and s

    , s :: Int
    u :: Int
     
    , v :: Int

    Produced by Haddock version 2.15.0

    version 2.16.0

  • Date: Thu, 26 Mar 2015 19:29:25 +0000 Subject: Test for anchor defaulting I delete the old tests because it turns out that: * test runner would never put them in scope of each other even with imports so just one would suffice * test runner actually needed some hacking to keep links so in the end we would end up with no anchors making them useless --- html-test/ref/Bug253.html | 99 ++++++++++++++++++++++++++++++++++++ html-test/ref/Ticket253_1.html | 91 --------------------------------- html-test/ref/Ticket253_2.html | 111 ----------------------------------------- html-test/run.lhs | 24 ++++++--- html-test/src/Bug253.hs | 10 ++++ html-test/src/Ticket253_1.hs | 6 --- html-test/src/Ticket253_2.hs | 6 --- 7 files changed, 126 insertions(+), 221 deletions(-) create mode 100644 html-test/ref/Bug253.html delete mode 100644 html-test/ref/Ticket253_1.html delete mode 100644 html-test/ref/Ticket253_2.html create mode 100644 html-test/src/Bug253.hs delete mode 100644 html-test/src/Ticket253_1.hs delete mode 100644 html-test/src/Ticket253_2.hs (limited to 'html-test') diff --git a/html-test/ref/Bug253.html b/html-test/ref/Bug253.html new file mode 100644 index 00000000..0802d91e --- /dev/null +++ b/html-test/ref/Bug253.html @@ -0,0 +1,99 @@ + +Bug253
    Safe HaskellSafe

    Bug253

    Description

    This module tests that if we're trying to link to a qualified + identifier that's not in scope, we get an anchor as if it was a + variable. Previous behaviour was to treat it as a type constructor + so issue like #253 arose. Also see rename function comments in + source.

    Synopsis

    Documentation

    foo :: ()

    This link should generate #v anchor: fakeFakeFake

    diff --git a/html-test/ref/Ticket253_1.html b/html-test/ref/Ticket253_1.html deleted file mode 100644 index ade128e9..00000000 --- a/html-test/ref/Ticket253_1.html +++ /dev/null @@ -1,91 +0,0 @@ - -Ticket253_1
    Safe HaskellSafe

    Ticket253_1

    Synopsis

    Documentation

    foo :: Int

    See bar.

    Also see Baz

    diff --git a/html-test/ref/Ticket253_2.html b/html-test/ref/Ticket253_2.html deleted file mode 100644 index 0b03a874..00000000 --- a/html-test/ref/Ticket253_2.html +++ /dev/null @@ -1,111 +0,0 @@ - -Ticket253_2
    Safe HaskellSafe

    Ticket253_2

    Synopsis

    Documentation

    bar :: Int

    Comment

    data Baz

    Constructors

    Baz 
    diff --git a/html-test/run.lhs b/html-test/run.lhs index a80b265e..1f19b723 100755 --- a/html-test/run.lhs +++ b/html-test/run.lhs @@ -21,7 +21,6 @@ import System.Exit import System.FilePath import System.Process (ProcessHandle, runProcess, waitForProcess, system) - packageRoot, dataDir, haddockPath, baseDir, testDir, outDir :: FilePath baseDir = takeDirectory __FILE__ testDir = baseDir "src" @@ -112,11 +111,11 @@ check modules strict = do then do out <- readFile outfile ref <- readFile reffile - if not $ haddockEq out ref + if not $ haddockEq (outfile, out) (reffile, ref) then do putStrLn $ "Output for " ++ mod ++ " has changed! Exiting with diff:" - let ref' = stripLinks ref - out' = stripLinks out + let ref' = maybeStripLinks outfile ref + out' = maybeStripLinks reffile out let reffile' = outDir takeFileName reffile ++ ".nolinks" outfile' = outDir takeFileName outfile ++ ".ref.nolinks" writeFile reffile' ref' @@ -134,6 +133,10 @@ check modules strict = do else do putStrLn $ "Pass: " ++ mod ++ " (no .ref file)" +-- | List of modules in which we don't 'stripLinks' +preserveLinksModules :: [String] +preserveLinksModules = map (++ ".html") ["Bug253"] + -- | A rather nasty way to drop the Haddock version string from the -- end of the generated HTML files so that we don't have to change -- every single test every time we change versions. We rely on the the @@ -146,9 +149,16 @@ dropVersion = reverse . dropTillP . reverse dropTillP ('p':'<':xs) = xs dropTillP (_:xs) = dropTillP xs -haddockEq :: String -> String -> Bool -haddockEq file1 file2 = - stripLinks (dropVersion file1) == stripLinks (dropVersion file2) +haddockEq :: (FilePath, String) -> (FilePath, String) -> Bool +haddockEq (fn1, file1) (fn2, file2) = + maybeStripLinks fn1 (dropVersion file1) + == maybeStripLinks fn2 (dropVersion file2) + +maybeStripLinks :: String -- ^ Module we're considering for stripping + -> String -> String +maybeStripLinks m = if any (`isSuffixOf` m) preserveLinksModules + then id + else stripLinks stripLinks :: String -> String stripLinks str = diff --git a/html-test/src/Bug253.hs b/html-test/src/Bug253.hs new file mode 100644 index 00000000..499f6cd4 --- /dev/null +++ b/html-test/src/Bug253.hs @@ -0,0 +1,10 @@ +-- | This module tests that if we're trying to link to a /qualified/ +-- identifier that's not in scope, we get an anchor as if it was a +-- variable. Previous behaviour was to treat it as a type constructor +-- so issue like #253 arose. Also see @rename@ function comments in +-- source. +module Bug253 where + +-- | This link should generate @#v@ anchor: 'DoesNotExist.fakeFakeFake' +foo :: () +foo = () diff --git a/html-test/src/Ticket253_1.hs b/html-test/src/Ticket253_1.hs deleted file mode 100644 index 62ab4b17..00000000 --- a/html-test/src/Ticket253_1.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Ticket253_1 where --- | See 'Ticket253_2.bar'. --- --- Also see 'Ticket253_2.Baz' -foo :: Int -foo = 0 diff --git a/html-test/src/Ticket253_2.hs b/html-test/src/Ticket253_2.hs deleted file mode 100644 index a19d4cee..00000000 --- a/html-test/src/Ticket253_2.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Ticket253_2 where --- | Comment -bar :: Int -bar = 0 - -data Baz = Baz -- cgit v1.2.3 From 5d04e313cc52ecf88b0fd0b3d0d39ce6a8dc7406 Mon Sep 17 00:00:00 2001 From: watashi Date: Sun, 26 Apr 2015 16:35:28 -0700 Subject: Do not insert anchor for section headings in contents box --- .gitignore | 3 + .../src/Haddock/Backends/Xhtml/DocMarkup.hs | 5 +- html-test/ref/Bug387.html | 111 +++++++++++++++++++++ html-test/src/Bug387.hs | 12 +++ 4 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 html-test/ref/Bug387.html create mode 100644 html-test/src/Bug387.hs (limited to 'html-test') diff --git a/.gitignore b/.gitignore index 6b8d26e0..2d3f4516 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ /doc/configure tags TAGS + +.cabal-sandbox +cabal.sandbox.config diff --git a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs index e807eb94..c23f3f08 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs @@ -62,7 +62,10 @@ parHtmlMarkup qual insertAnchors ppId = Markup { then anchor ! [href url] << fromMaybe url mLabel else toHtml $ fromMaybe url mLabel, - markupAName = \aname -> namedAnchor aname << "", + markupAName = \aname + -> if insertAnchors + then namedAnchor aname << "" + else noHtml, markupPic = \(Picture uri t) -> image ! ([src uri] ++ fromMaybe [] (return . title <$> t)), markupProperty = pre . toHtml, markupExample = examplesToHtml, diff --git a/html-test/ref/Bug387.html b/html-test/ref/Bug387.html new file mode 100644 index 00000000..2d2009b1 --- /dev/null +++ b/html-test/ref/Bug387.html @@ -0,0 +1,111 @@ + +Bug387
    Safe HaskellSafe

    Bug387

    Synopsis

    Section1

    Section2

    diff --git a/html-test/src/Bug387.hs b/html-test/src/Bug387.hs new file mode 100644 index 00000000..d9fed34e --- /dev/null +++ b/html-test/src/Bug387.hs @@ -0,0 +1,12 @@ +module Bug387 + ( -- * Section1#a:section1# + test1 + -- * Section2#a:section2# + , test2 + ) where + +test1 :: Int +test1 = 223 + +test2 :: Int +test2 = 42 -- cgit v1.2.3 From c4a73b5b0fb7574bd519584c16b5be0675f3f430 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Wed, 27 May 2015 22:46:13 +0200 Subject: Add simple test case for arbitrary-depth list nesting. --- html-test/ref/Nesting.html | 49 ++++++++++++++++++++++++++++++++++++---------- html-test/src/Nesting.hs | 15 ++++++++++++++ 2 files changed, 54 insertions(+), 10 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/Nesting.html b/html-test/ref/Nesting.html index 37ee7af3..542d6db7 100644 --- a/html-test/ref/Nesting.html +++ b/html-test/ref/Nesting.html @@ -73,6 +73,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Nesting.html");}; >j :: t
  • k :: t
  • No newline separation even in indented lists. We can have any paragraph level element that we normally - can, like headers

    Level 3 header

    with some content…

    • and even more lists inside

    Level 3 header

    with some content…

    • and even more lists inside

    k :: t

    • list may start at arbitrary depth
    • and consecutive items at that depth + belong to the same list
    • of course we can still

      • nest items like we are used to
    • and then get back to initial list
    Date: Sat, 23 May 2015 04:56:18 -0700 Subject: Build executable with '-threaded' (fixes #399) --- haddock.cabal | 2 +- html-test/ref/Threaded.html | 94 ++++++++++++++++++++++++++++++++++++++++++++ html-test/src/Threaded.hs | 10 +++++ html-test/src/Threaded_TH.hs | 13 ++++++ 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 html-test/ref/Threaded.html create mode 100644 html-test/src/Threaded.hs create mode 100644 html-test/src/Threaded_TH.hs (limited to 'html-test') diff --git a/haddock.cabal b/haddock.cabal index 03bb28ab..ed570f53 100644 --- a/haddock.cabal +++ b/haddock.cabal @@ -42,7 +42,7 @@ executable haddock default-language: Haskell2010 main-is: Main.hs hs-source-dirs: driver - ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2 + ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2 -threaded build-depends: base >= 4.3 && < 4.9 diff --git a/html-test/ref/Threaded.html b/html-test/ref/Threaded.html new file mode 100644 index 00000000..95a18933 --- /dev/null +++ b/html-test/ref/Threaded.html @@ -0,0 +1,94 @@ + +Threaded

     

    Safe HaskellNone

    Threaded

    Description

    Ensures haddock built with -threaded.

    Synopsis

    Documentation

    f :: Integer

    $(forkTH) fails at compile time if haddock isn't using the + threaded RTS.

    diff --git a/html-test/src/Threaded.hs b/html-test/src/Threaded.hs new file mode 100644 index 00000000..7f3073ad --- /dev/null +++ b/html-test/src/Threaded.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE TemplateHaskell #-} + +-- | Ensures haddock built with @-threaded@. +module Threaded where + +import Threaded_TH + +-- | @$(forkTH)@ fails at compile time if haddock isn't using the +-- threaded RTS. +f = $(forkTH) diff --git a/html-test/src/Threaded_TH.hs b/html-test/src/Threaded_TH.hs new file mode 100644 index 00000000..53e5a399 --- /dev/null +++ b/html-test/src/Threaded_TH.hs @@ -0,0 +1,13 @@ +-- | Imported by 'Threaded', since a TH splice can't be used in the +-- module where it is defined. +module Threaded_TH where + +import Control.Concurrent (forkOS) +import Language.Haskell.TH.Syntax (Exp (LitE), Lit (IntegerL), Q, runIO) + +-- | forkOS requires the threaded RTS, so this TH fails if haddock was +-- built without @-threaded@. +forkTH :: Q Exp +forkTH = do + _ <- runIO (forkOS (return ())) + return (LitE (IntegerL 0)) -- cgit v1.2.3 From 4343f6c86225b6e283c73afcd8adc007fafebeff Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Sun, 14 Jun 2015 10:31:18 +0100 Subject: Update tests for the CSS changes --- CHANGES | 2 + html-test/ref/Bug26.html | 12 +- html-test/ref/Bug294.html | 70 +- html-test/ref/Bug7.html | 34 +- html-test/ref/Hash.html | 44 +- html-test/ref/HiddenInstances.html | 50 +- html-test/ref/HiddenInstancesB.html | 26 +- html-test/ref/QuasiExpr.html | 26 +- html-test/ref/SpuriousSuperclassConstraints.html | 34 +- html-test/ref/Test.html | 26 +- html-test/ref/TypeFamilies.html | 834 ++++++++++++----------- html-test/ref/TypeFamilies2.html | 114 ++-- html-test/ref/ocean.css | 23 + 13 files changed, 719 insertions(+), 576 deletions(-) (limited to 'html-test') diff --git a/CHANGES b/CHANGES index 368002dd..cb17fde7 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,8 @@ Changes in version 2.16.1 * Fix cross-module instance locations (#383) + * Fix alignment of Source link for instances in Firefox (#384) + Changes in version 2.16.0 * Experimental collapsible header support (#335) diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index 981370fa..c670264c 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -145,10 +145,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");}; >
    C ()C ()

    instance for ()

    Produced by Haddock version 2.15.1

    version 2.16.1

    data DP A = ProblemCtor' Adata DP A = ProblemCtor' A 
    data TP A = ProblemCtor Adata TP A = ProblemCtor A 

    Produced by Haddock version 2.15.0

    version 2.16.1

    data DP A = ProblemCtor' Adata DP A = ProblemCtor' A 
    Bar Foo FooBar Foo Foo

    Bar Foo FooBar Foo Foo

    Produced by Haddock version 2.15.0

    version 2.16.1

    Produced by Haddock version 2.15.0

    version 2.16.1

    Hash FloatHash Float 
    Hash IntHash Int 
    (Hash a, Hash b) => Hash (a, b)(Hash a, Hash b) => Hash (a, b) 
    VisibleClass IntVisibleClass Int

    VisibleClass VisibleDataVisibleClass VisibleData

    Num VisibleDataNum VisibleData

    VisibleClass VisibleDataVisibleClass VisibleData

    Produced by Haddock version 2.15.0

    version 2.16.1

    Foo BarFoo Bar

    Foo BarFoo Bar

    Produced by Haddock version 2.15.0

    version 2.16.1

    Show ExprShow Expr 

    Produced by Haddock version 2.15.0

    version 2.16.1

    Show BinOpShow BinOp 

    Produced by Haddock version 2.15.0

    version 2.16.1

    Functor (SomeType f)Functor (SomeType f) 
    Applicative f => Applicative (SomeType f)Applicative f => Applicative (SomeType f) 

    Produced by Haddock version 2.16.0

    version 2.16.1

    D FloatD Float 
    D IntD Int 
    Assoc * XAssoc * X

    Test * XTest * X

    (><) X XX XXX(><) X XX XXX 
    type Foo X = Ytype Foo X = Y

    data AssocD * X = AssocXdata AssocD * X = AssocX 
    type AssocT * X = Foo * Xtype AssocT * X = Foo * X 
    data Bat * X data Bat * X }

    type Foo * X = Ytype Foo * X = Y

    type (<>) * X a = Xtype (<>) * X a = X 
    type (<>) X XXX XX = Xtype (<>) X XXX XX = X 
    Assoc * YAssoc * Y

    Test * YTest * Y

    data Bar Ydata Bar Y 
    data AssocD * Y = AssocYdata AssocD * Y = AssocY 
    type AssocT * Y = Bat * Ytype AssocT * Y = Bat * Y 
    data Bat * Y = BatY Ydata Bat * Y = BatY Y

    type Foo * Y = Xtype Foo * Y = X

    type (<>) * Y a = atype (<>) * Y a = a 
    data Bat Z wheredata Bat Z where } -> Bat Z ZB

    Test * YTest * Y

    Test * XTest * X

    type Foo * Y = Xtype Foo * Y = X

    type Foo * X = Ytype Foo * X = Y

    data Bat Z wheredata Bat Z where } -> Bat Z ZB

    data Bat * Y = BatY Ydata Bat * Y = BatY Y

    data Bat * X data Bat * X }

    Assoc * YAssoc * Y

    Assoc * XAssoc * X

    type (<>) * Y a = atype (<>) * Y a = a 
    type (<>) * X a = Xtype (<>) * X a = X 
    type (<>) X XXX XX = Xtype (<>) X XXX XX = X 

    Produced by Haddock version 2.15.0

    version 2.16.1

    (><) X XX XXX(><) X XX XXX 
    data Bar W = BarX Zdata Bar W = BarX Z

    Shown because BarX is still exported despite Z being hidden

    type Foo Wtype Foo W

    type Foo Wtype Foo W

    type Foo X = Ytype Foo X = Y

    Produced by Haddock version 2.15.0

    version 2.16.1

    Date: Tue, 7 Jul 2015 23:58:52 +0100 Subject: Delete trailing whitespace --- haddock-api/resources/html/frames.html | 2 +- haddock-api/resources/html/haddock-util.js | 22 +++++++++++----------- haddock-api/src/Haddock/Backends/HaddockDB.hs | 18 +++++++++--------- haddock-api/src/Haddock/Backends/Xhtml/Utils.hs | 2 +- haddock-api/src/Haddock/Version.hs | 2 +- haddock-library/LICENSE | 4 ++-- html-test/README.markdown | 2 +- html-test/ref/frames.html | 2 +- html-test/ref/haddock-util.js | 22 +++++++++++----------- html-test/src/Bugs.hs | 2 +- hypsrc-test/ref/src/Classes.html | 2 +- hypsrc-test/src/Classes.hs | 2 +- 12 files changed, 41 insertions(+), 41 deletions(-) (limited to 'html-test') diff --git a/haddock-api/resources/html/frames.html b/haddock-api/resources/html/frames.html index 1b4e38d4..e86edb66 100644 --- a/haddock-api/resources/html/frames.html +++ b/haddock-api/resources/html/frames.html @@ -1,4 +1,4 @@ - diff --git a/haddock-api/resources/html/haddock-util.js b/haddock-api/resources/html/haddock-util.js index 9a6fccf7..ba574356 100644 --- a/haddock-api/resources/html/haddock-util.js +++ b/haddock-api/resources/html/haddock-util.js @@ -131,11 +131,11 @@ function perform_search(full) var text = document.getElementById("searchbox").value.toLowerCase(); if (text == last_search && !full) return; last_search = text; - + var table = document.getElementById("indexlist"); var status = document.getElementById("searchmsg"); var children = table.firstChild.childNodes; - + // first figure out the first node with the prefix var first = bisect(-1); var last = (first == -1 ? -1 : bisect(1)); @@ -166,7 +166,7 @@ function perform_search(full) status.innerHTML = ""; } - + function setclass(first, last, status) { for (var i = first; i <= last; i++) @@ -174,8 +174,8 @@ function perform_search(full) children[i].className = status; } } - - + + // do a binary search, treating 0 as ... // return either -1 (no 0's found) or location of most far match function bisect(dir) @@ -201,9 +201,9 @@ function perform_search(full) if (checkitem(i) == 0) return i; } return -1; - } - - + } + + // from an index, decide what the result is // 0 = match, -1 is lower, 1 is higher function checkitem(i) @@ -212,8 +212,8 @@ function perform_search(full) if (s == text) return 0; else return (s > text ? -1 : 1); } - - + + // from an index, get its string // this abstracts over alternates function getitem(i) @@ -250,7 +250,7 @@ function addMenuItem(html) { function adjustForFrames() { var bodyCls; - + if (parent.location.href == window.location.href) { // not in frames, so add Frames button addMenuItem("Frames"); diff --git a/haddock-api/src/Haddock/Backends/HaddockDB.hs b/haddock-api/src/Haddock/Backends/HaddockDB.hs index 1c248bfb..0bdc9057 100644 --- a/haddock-api/src/Haddock/Backends/HaddockDB.hs +++ b/haddock-api/src/Haddock/Backends/HaddockDB.hs @@ -40,7 +40,7 @@ ppIfaces mods where do_mod (Module mod, iface) = text " text mod <> text "\">" - $$ text "<literal>" + $$ text "<title><literal>" <> text mod <> text "</literal>" $$ text "" @@ -50,10 +50,10 @@ ppIfaces mods $$ vcat (map (do_export mod) (eltsFM (iface_decls iface))) $$ text "" $$ text "" - + do_export mod decl | (nm:_) <- declBinders decl = text "" + $$ text "" <> do_decl decl <> text "" $$ text "" @@ -63,11 +63,11 @@ ppIfaces mods $$ text "" do_export _ _ = empty - do_decl (HsTypeSig _ [nm] ty _) + do_decl (HsTypeSig _ [nm] ty _) = ppHsName nm <> text " :: " <> ppHsType ty do_decl (HsTypeDecl _ nm args ty _) = hsep ([text "type", ppHsName nm ] - ++ map ppHsName args + ++ map ppHsName args ++ [equals, ppHsType ty]) do_decl (HsNewTypeDecl loc ctx nm args con drv _) = hsep ([text "data", ppHsName nm] -- data, not newtype @@ -87,7 +87,7 @@ ppHsConstr :: HsConDecl -> Doc ppHsConstr (HsRecDecl pos name tvs ctxt fieldList maybe_doc) = ppHsName name <> (braces . hsep . punctuate comma . map ppField $ fieldList) -ppHsConstr (HsConDecl pos name tvs ctxt typeList maybe_doc) = +ppHsConstr (HsConDecl pos name tvs ctxt typeList maybe_doc) = hsep (ppHsName name : map ppHsBangType typeList) ppField (HsFieldDecl ns ty doc) @@ -100,7 +100,7 @@ ppHsBangType (HsUnBangedTy ty) = ppHsType ty ppHsContext :: HsContext -> Doc ppHsContext [] = empty -ppHsContext context = parenList (map (\ (a,b) -> ppHsQName a <+> +ppHsContext context = parenList (map (\ (a,b) -> ppHsQName a <+> hsep (map ppHsAType b)) context) ppHsType :: HsType -> Doc @@ -109,7 +109,7 @@ ppHsType (HsForAllType Nothing context htype) = ppHsType (HsForAllType (Just tvs) [] htype) = hsep (text "forall" : map ppHsName tvs ++ text "." : [ppHsType htype]) ppHsType (HsForAllType (Just tvs) context htype) = - hsep (text "forall" : map ppHsName tvs ++ text "." : + hsep (text "forall" : map ppHsName tvs ++ text "." : ppHsContext context : text "=>" : [ppHsType htype]) ppHsType (HsTyFun a b) = fsep [ppHsBType a, text "->", ppHsType b] ppHsType (HsTyIP n t) = fsep [(char '?' <> ppHsName n), text "::", ppHsType t] @@ -135,7 +135,7 @@ ppHsQName (UnQual str) = ppHsName str ppHsQName n@(Qual (Module mod) str) | n == unit_con_name = ppHsName str | isSpecial str = ppHsName str - | otherwise + | otherwise = text "" diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs index 5166549a..26bcbf6d 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs @@ -215,7 +215,7 @@ collapseSection id_ state classes = [ identifier sid, theclass cs ] collapseToggle :: String -> [HtmlAttr] collapseToggle id_ = [ strAttr "onclick" js ] where js = "toggleSection('" ++ id_ ++ "')"; - + -- | Attributes for an area that toggles a collapsed area, -- and displays a control. collapseControl :: String -> Bool -> String -> [HtmlAttr] diff --git a/haddock-api/src/Haddock/Version.hs b/haddock-api/src/Haddock/Version.hs index 2ef3a257..4e9a581a 100644 --- a/haddock-api/src/Haddock/Version.hs +++ b/haddock-api/src/Haddock/Version.hs @@ -9,7 +9,7 @@ -- Stability : experimental -- Portability : portable ----------------------------------------------------------------------------- -module Haddock.Version ( +module Haddock.Version ( projectName, projectVersion, projectUrl ) where diff --git a/haddock-library/LICENSE b/haddock-library/LICENSE index 1636bfcd..460decfc 100644 --- a/haddock-library/LICENSE +++ b/haddock-library/LICENSE @@ -5,11 +5,11 @@ modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR diff --git a/html-test/README.markdown b/html-test/README.markdown index 8d57acab..717bac5c 100644 --- a/html-test/README.markdown +++ b/html-test/README.markdown @@ -1,7 +1,7 @@ This is a testsuite for Haddock that uses the concept of "golden files". That is, it compares output files against a set of reference files. -To add a new test: +To add a new test: 1. Create a module in the `html-test/src` directory. diff --git a/html-test/ref/frames.html b/html-test/ref/frames.html index 1b4e38d4..e86edb66 100644 --- a/html-test/ref/frames.html +++ b/html-test/ref/frames.html @@ -1,4 +1,4 @@ - diff --git a/html-test/ref/haddock-util.js b/html-test/ref/haddock-util.js index 9a6fccf7..ba574356 100644 --- a/html-test/ref/haddock-util.js +++ b/html-test/ref/haddock-util.js @@ -131,11 +131,11 @@ function perform_search(full) var text = document.getElementById("searchbox").value.toLowerCase(); if (text == last_search && !full) return; last_search = text; - + var table = document.getElementById("indexlist"); var status = document.getElementById("searchmsg"); var children = table.firstChild.childNodes; - + // first figure out the first node with the prefix var first = bisect(-1); var last = (first == -1 ? -1 : bisect(1)); @@ -166,7 +166,7 @@ function perform_search(full) status.innerHTML = ""; } - + function setclass(first, last, status) { for (var i = first; i <= last; i++) @@ -174,8 +174,8 @@ function perform_search(full) children[i].className = status; } } - - + + // do a binary search, treating 0 as ... // return either -1 (no 0's found) or location of most far match function bisect(dir) @@ -201,9 +201,9 @@ function perform_search(full) if (checkitem(i) == 0) return i; } return -1; - } - - + } + + // from an index, decide what the result is // 0 = match, -1 is lower, 1 is higher function checkitem(i) @@ -212,8 +212,8 @@ function perform_search(full) if (s == text) return 0; else return (s > text ? -1 : 1); } - - + + // from an index, get its string // this abstracts over alternates function getitem(i) @@ -250,7 +250,7 @@ function addMenuItem(html) { function adjustForFrames() { var bodyCls; - + if (parent.location.href == window.location.href) { // not in frames, so add Frames button addMenuItem("Frames"); diff --git a/html-test/src/Bugs.hs b/html-test/src/Bugs.hs index 8e1f0079..e60bbe8f 100644 --- a/html-test/src/Bugs.hs +++ b/html-test/src/Bugs.hs @@ -1,3 +1,3 @@ module Bugs where -data A a = A a (a -> Int) +data A a = A a (a -> Int) diff --git a/hypsrc-test/ref/src/Classes.html b/hypsrc-test/ref/src/Classes.html index a5a3d243..13c8389a 100644 --- a/hypsrc-test/ref/src/Classes.html +++ b/hypsrc-test/ref/src/Classes.html @@ -408,7 +408,7 @@ >] + > Foo' a where quux :: (a, a) -> a - quux (x, y) = norf [x, y] + quux (x, y) = norf [x, y] norf :: [a] -> a norf = quux . baz . sum . map bar -- cgit v1.2.3 From 06e0766810779180dbc52d15c0df5a2eaaf1881e Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Sat, 11 Jul 2015 14:23:05 +0100 Subject: Fix expansion icon for user-collapsible sections Closes #412 --- CHANGES | 2 ++ haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs | 5 +++-- html-test/ref/Bug335.html | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'html-test') diff --git a/CHANGES b/CHANGES index ff49b6f5..be829adf 100644 --- a/CHANGES +++ b/CHANGES @@ -23,6 +23,8 @@ Changes in version 2.16.1 * Generate hyperlinked source ourselves (#410, part of GSOC 2015) + * Fix expansion icon for user-collapsible sections (#412) + Changes in version 2.16.0 * Experimental collapsible header support (#335) diff --git a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs index c23f3f08..3fe74a82 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/DocMarkup.hs @@ -161,8 +161,9 @@ hackMarkup fmt' h' = UntouchedDoc d -> (markup fmt $ _doc d, [_meta d]) CollapsingHeader (Header lvl titl) par n nm -> let id_ = makeAnchorId $ "ch:" ++ fromMaybe "noid:" nm ++ show n - col' = collapseControl id_ True "caption" - instTable = (thediv ! collapseSection id_ False [] <<) + expanded = False + col' = collapseControl id_ expanded "caption" + instTable = (thediv ! collapseSection id_ expanded [] <<) lvs = zip [1 .. ] [h1, h2, h3, h4, h5, h6] getHeader = fromMaybe caption (lookup lvl lvs) subCaption = getHeader ! col' << markup fmt titl diff --git a/html-test/ref/Bug335.html b/html-test/ref/Bug335.html index 6f3d3820..dbe97422 100644 --- a/html-test/ref/Bug335.html +++ b/html-test/ref/Bug335.html @@ -64,7 +64,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");}; >f :: ()

    ExF:

    g :: ()

    ExG:

    Produced by Haddock version 2.16.0

    version 2.16.1

    Date: Sun, 2 Aug 2015 23:58:25 +0100 Subject: Update tests to follow HTML changes --- CHANGES | 4 + html-test/ref/A.html | 16 +- html-test/ref/AdvanceTypes.html | 8 +- html-test/ref/B.html | 10 +- html-test/ref/Bold.html | 4 +- html-test/ref/Bug1.html | 6 +- html-test/ref/Bug195.html | 136 +++--- html-test/ref/Bug2.html | 4 +- html-test/ref/Bug201.html | 6 +- html-test/ref/Bug253.html | 4 +- html-test/ref/Bug26.html | 10 +- html-test/ref/Bug294.html | 18 +- html-test/ref/Bug298.html | 12 +- html-test/ref/Bug3.html | 4 +- html-test/ref/Bug308.html | 6 +- html-test/ref/Bug308CrossModule.html | 4 +- html-test/ref/Bug310.html | 4 +- html-test/ref/Bug313.html | 6 +- html-test/ref/Bug335.html | 6 +- html-test/ref/Bug387.html | 6 +- html-test/ref/Bug4.html | 4 +- html-test/ref/Bug6.html | 88 ++-- html-test/ref/Bug7.html | 8 +- html-test/ref/Bug8.html | 18 +- html-test/ref/Bug85.html | 14 +- html-test/ref/BugDeprecated.html | 14 +- html-test/ref/BugExportHeadings.html | 14 +- html-test/ref/Bugs.html | 6 +- html-test/ref/DeprecatedClass.html | 10 +- html-test/ref/DeprecatedData.html | 14 +- html-test/ref/DeprecatedFunction.html | 6 +- html-test/ref/DeprecatedFunction2.html | 4 +- html-test/ref/DeprecatedFunction3.html | 4 +- html-test/ref/DeprecatedModule.html | 4 +- html-test/ref/DeprecatedModule2.html | 4 +- html-test/ref/DeprecatedNewtype.html | 10 +- html-test/ref/DeprecatedReExport.html | 4 +- html-test/ref/DeprecatedRecord.html | 60 +-- html-test/ref/DeprecatedTypeFamily.html | 6 +- html-test/ref/DeprecatedTypeSynonym.html | 6 +- html-test/ref/Examples.html | 4 +- html-test/ref/Extensions.html | 4 +- html-test/ref/FunArgs.html | 12 +- html-test/ref/GADTRecords.html | 64 +-- html-test/ref/Hash.html | 14 +- html-test/ref/HiddenInstances.html | 6 +- html-test/ref/HiddenInstancesB.html | 6 +- html-test/ref/Hyperlinks.html | 4 +- html-test/ref/IgnoreExports.html | 6 +- html-test/ref/ImplicitParams.html | 12 +- html-test/ref/Minimal.html | 52 +-- html-test/ref/ModuleWithWarning.html | 4 +- html-test/ref/NamedDoc.html | 2 +- html-test/ref/Nesting.html | 18 +- html-test/ref/NoLayout.html | 4 +- html-test/ref/NonGreedy.html | 4 +- html-test/ref/Operators.html | 44 +- html-test/ref/PatternSyns.html | 22 +- html-test/ref/Properties.html | 4 +- html-test/ref/PruneWithWarning.html | 2 +- html-test/ref/QuasiExpr.html | 28 +- html-test/ref/QuasiQuote.html | 4 +- html-test/ref/SpuriousSuperclassConstraints.html | 4 +- html-test/ref/TH.html | 4 +- html-test/ref/TH2.html | 4 +- html-test/ref/Test.html | 522 ++++++++++++----------- html-test/ref/Threaded.html | 16 +- html-test/ref/Ticket112.html | 4 +- html-test/ref/Ticket61.html | 6 +- html-test/ref/Ticket75.html | 8 +- html-test/ref/TitledPicture.html | 6 +- html-test/ref/TypeFamilies.html | 76 ++-- html-test/ref/TypeFamilies2.html | 12 +- html-test/ref/TypeOperators.html | 44 +- html-test/ref/Unicode.html | 4 +- html-test/ref/Visible.html | 4 +- html-test/ref/haddock-util.js | 2 +- html-test/ref/mini_FunArgs.html | 18 + html-test/ref/ocean.css | 32 +- 79 files changed, 853 insertions(+), 805 deletions(-) (limited to 'html-test') diff --git a/CHANGES b/CHANGES index d35528d1..2cb0a5e0 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,10 @@ Changes in version 2.16.2 * Break up response file arguments on newlines + * Various HTML fixes (#301, #406, #407, #421) + + * Line anchors in hyperlinked source (#420) + Changes in version 2.16.1 * Don't default to type constructors for out-of-scope names (#253 and diff --git a/html-test/ref/A.html b/html-test/ref/A.html index 96e2d001..56c04bc6 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -88,7 +88,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");}; >

    data A

    data Bar W = BarX Zdata Bar W = BarX Z

    Shown because BarX is still exported despite Z being hidden

    data Bar Ydata Bar Y 
    A

    test2 :: Bool

    data X

    X

    reExport :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data Pattern :: [*] -> * where
    Nil :: Pattern
    Cons :: Maybe

    Produced by Haddock version 2.15.0

    version 2.16.2

    reExport :: Int

    data X

    X

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: t

    Produced by Haddock version 2.15.0

    version 2.16.2

    data T

    T

    Produced by Haddock version 2.15.0

    version 2.16.2

    data T

    Produced by Haddock version 2.16.0

    version 2.16.2

    Documentation

    x :: A

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f :: ()

    g :: ()

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: ()

    Produced by Haddock version 2.16.0

    version 2.16.2

    Documentation

    f :: ()

    g :: ()

    class C a where

    Methods

    c_f :: a

    Produced by Haddock version 2.16.1

    version 2.16.2

    data A

    gadtField :: GADT A

    data family DP t :: *

    DP A = = ProblemCtor' A

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    (<^>) :: (a -> a) -> a -> a

    (<^) :: a -> a -> a

    (^>) :: a -> a -> a

    (⋆^) :: a -> a -> a

    f :: ()

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f :: ()

    g :: ()

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    h :: ()

    Produced by Haddock version 2.15.0

    version 2.16.2

    type family a a + b :: Nat

    Produced by Haddock version 2.16.0

    version 2.16.2

    Documentation

    a :: a

    b :: a

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f :: ()

    g :: ()

    Produced by Haddock version 2.16.1

    version 2.16.2

    test1 :: Int

    test2 :: Int

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data A

    A

    Fields

    someField :: ()

    Doc for someField of A

    someOtherField :: ()

    Doc for someOtherField of A

    B

    Fields

    someField :: ()

    Doc for someField of A

    someOtherField :: ()

    Doc for someOtherField of A

    C

    Fields

    someField :: ()

    Doc for someField of A

    someOtherField :: ()

    Doc for someOtherField of A

    A Int

    data B

    data C

    B

    Fields

    b :: Int
     

    data D

    C

    Fields

    c1 :: Int
     
    c2 :: Int
     
    D Int

    newtype E

    E Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data Foo

    Foo

    class Bar x y

    Produced by Haddock version 2.16.1

    version 2.16.2

    data Typ

    Type (Typ
    TFree (Typ

    (-->) :: t -> t1 -> Typ

    s :: t

    t :: t

    main :: t

    Produced by Haddock version 2.16.0

    version 2.16.2

    data Foo :: (* -> *) -> * -> * where
    Bar :: f x -> Foo

    data Baz :: * where
    Baz' :: Baz

    data Qux where
    Quux :: Qux

    Produced by Haddock version 2.16.0

    version 2.16.2

    Documentation

    foo :: Int

    bar :: Int

    baz :: Int

    one :: Int

    two :: Int

    three :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Foo

    foo :: IntBar

    bar :: IntBaz

    baz :: IntOne

    one :: IntTwo

    two :: IntThree

    three :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data A a

    A a (a -> Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    class SomeClass a where

    Methods

    foo :: a -> a

    class SomeOtherClass a where

    Methods

    bar :: a -> a

    Produced by Haddock version 2.15.0

    version 2.16.2

    data Foo

    Foo
    Bar

    data One

    One
    Two

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    bar :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Integer

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    newtype SomeNewType

    Date: Fri, 31 Jul 2015 20:16:33 +0200 Subject: Make identifier generation also architecture-independent. --- haddock-api/src/Haddock/Backends/Xhtml/Decl.hs | 12 ++++--- html-test/ref/Bug7.html | 8 ++--- html-test/ref/Hash.html | 8 ++--- html-test/ref/HiddenInstances.html | 16 +++++----- html-test/ref/HiddenInstancesB.html | 8 ++--- html-test/ref/QuasiExpr.html | 4 +-- html-test/ref/SpuriousSuperclassConstraints.html | 8 ++--- html-test/ref/Test.html | 4 +-- html-test/ref/TypeFamilies.html | 40 ++++++++++++------------ 9 files changed, 55 insertions(+), 53 deletions(-) (limited to 'html-test') diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs b/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs index c30d0e62..f1203210 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs @@ -31,10 +31,12 @@ import Haddock.Syb import Haddock.Doc (combineDocumentation) import Data.Bits +import Data.Char import Data.Data (Data, cast) import Data.List ( intersperse, sort ) import qualified Data.Map as Map import Data.Maybe +import Data.Word import Text.XHtml hiding ( name, title, p, quote ) import GHC @@ -636,16 +638,16 @@ instanceId orgin no ihd = concat -- section anchors in testing framework and that is not only inconvenient but -- also makes testing less viable. And it is only temporary solution so we can -- live with it. -instHeadId :: InstHead DocName -> Int +instHeadId :: InstHead DocName -> Word64 instHeadId (InstHead { .. }) = - djb2 . map key $ [ihdClsName] ++ names ihdTypes ++ names ihdKinds + djb2 id . map key $ [ihdClsName] ++ names ihdTypes ++ names ihdKinds where names = everything (++) $ maybeToList . (cast :: forall a. Data a => a -> Maybe DocName) - key = djb2 . occNameString . nameOccName . getName + key = djb2 (fromIntegral . ord) . occNameString . nameOccName . getName - djb2 :: Enum a => [a] -> Int - djb2 = foldl (\h c -> h * 33 `xor` fromEnum c) 5381 + djb2 :: (a -> Word64) -> [a] -> Word64 + djb2 conv = foldl (\h c -> h * 33 `xor` conv c) 5381 ------------------------------------------------------------------------------- diff --git a/html-test/ref/Bug7.html b/html-test/ref/Bug7.html index f0fbc44d..4c0ba83b 100644 --- a/html-test/ref/Bug7.html +++ b/html-test/ref/Bug7.html @@ -106,7 +106,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");}; > Date: Mon, 3 Aug 2015 16:05:01 +0200 Subject: Accept tests affected by changes related to instance expander. --- html-test/ref/Bug26.html | 10 +- html-test/ref/Bug7.html | 36 +++--- html-test/ref/Hash.html | 46 +++---- html-test/ref/HiddenInstances.html | 56 ++++---- html-test/ref/HiddenInstancesB.html | 28 ++-- html-test/ref/QuasiExpr.html | 28 ++-- html-test/ref/SpuriousSuperclassConstraints.html | 32 ++--- html-test/ref/Test.html | 28 ++-- html-test/ref/TypeFamilies.html | 156 +++++++++++------------ 9 files changed, 210 insertions(+), 210 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index 18bfa63b..bdb51231 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -147,11 +147,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");}; > Date: Wed, 5 Aug 2015 21:08:42 +0200 Subject: Add examples with type operators to the instances test case. --- html-test/src/Instances.hs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index b7bc8921..545c8534 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -3,11 +3,15 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ImpredicativeTypes #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} module Instances where +newtype (<~~) a b = Xyzzy (b -> (a, a)) + + class Foo f where foo :: f Int -> a -> f a @@ -21,6 +25,8 @@ instance Foo [] instance (Eq a, Foo f) => Foo ((,) (f a)) instance Foo (Either a) instance Foo ((,,) a a) +instance Foo ((->) a) +instance Foo ((<~~) a) class Foo f => Bar f a where -- cgit v1.2.3
    SomeNewTypeConst String

    newtype SomeOtherNewType

    SomeOtherNewTypeConst String

    Produced by Haddock version 2.15.0

    version 2.16.2

    Re-exported from an other module

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data Foo

    Produced by Haddock version 2.15.0

    version 2.16.2

    data family SomeTypeFamily k :: * -> *

    data family SomeOtherTypeFamily k :: * -> *

    Produced by Haddock version 2.16.0

    version 2.16.2

    type TypeSyn = String

    type OtherTypeSyn = String

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    fib :: Integer

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foobar :: t

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f

    g

    h

    i

    j

    Produced by Haddock version 2.15.0

    version 2.16.2

    data H1 a b where

    Foo

    Fields

    fooName :: String

    some name

    fooValue :: Int
  • fooValue :: Int

    Deprecated: do not use this

    some value

  • Produced by Haddock version 2.15.0

    version 2.16.2

    data HashTable key val

    s

    new :: (Eq

    lookup :: Hash

    class Hash a where

    Methods

    hash :: a -> Int

    Produced by Haddock version 2.16.1

    version 2.16.2

    class VisibleClass a

    data VisibleData

    Produced by Haddock version 2.16.1

    version 2.16.2

    class Foo a

    data Bar

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    bar :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    data X

    C1 :: H1
    C2 :: Ord
    C3 :: Int

    Fields

    field :: Int

    hello docs

    C4 :: a -> H1

    Fields

    field2 :: a

    hello2 docs

    X

    c :: (?x :: X

    d :: (?x :: X

    f :: ((?x :: X

    Produced by Haddock version 2.15.0

    version 2.16.2

    class Foo a where

    Methods

    foo :: a

    Any two of these are required...

    bar :: a

    bat :: a

    fooBarBat :: (a, a, a)

    class Weird a where

    Methods

    a :: a

    b :: a

    c :: a

    d :: a

    e :: a

    f :: a

    g :: a

    class NoMins a where

    Methods

    x :: a

    y :: a

    z :: a

    class FullMin a where

    Methods

    aaa :: a

    bbb :: a

    class PartialMin a where

    Methods

    ccc :: a

    class EmptyMin a where

    Methods

    eee :: a

    fff :: a

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    foo :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    d :: t

    e :: t

    f :: t

    g :: t

    h :: t

    i :: t

    j :: t

    k :: t

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    g :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f :: a

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    (+-) :: a -> a -> a

    (*/) :: a -> a -> a infixr 7

    foo :: a -> a -> a infixl 3

    data Foo

    Foo `Bar` FooFoo :- Foo

    pattern (:+) :: t -> t -> [t] infixr 3

    data a a <-> b where
    (:<->) :: a -> b -> a <->

    type family a a ++ b infix 3

    data family a a ** b infix 9

    class a a ><> b where

    type a a <>< b :: * infixl 2

    data a a ><< b infixl 3

    Methods

    (>><), , (<<>) :: a -> b -> () infixl 5 <<>

    (**>), , (**<), , (>**), , (<**) :: a -> a -> () infixr 8 **>, >**

    type (>-<) a b = a <->

    Produced by Haddock version 2.16.0

    version 2.16.2

    data FooType x

    FooCtor x

    pattern Foo :: t -> FooType

    pattern Bar :: t -> FooType

    pattern (:<->) :: t -> t -> (FooType

    data a a >< b

    Doc for (><><)

    Empty

    pattern E :: (><)

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    fib :: Integer

    Produced by Haddock version 2.15.0

    version 2.16.2

    Produced by Haddock version 2.15.0

    version 2.16.2

    data Expr

    IntExpr Integer
    AntiIntExpr String
    BinopExpr BinOp
    AntiExpr String

    data BinOp

    AddOp
    SubOp
    MulOp
    DivOp

    expr :: QuasiQuoter

    parseExprExp :: String

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    val :: Integer

    Produced by Haddock version 2.15.0

    version 2.16.2

    data SomeType f a

    Produced by Haddock version 2.16.1

    version 2.16.2

    Documentation

    decl :: Q [Dec]

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    f :: t -> t

    Produced by Haddock version 2.15.0

    version 2.16.2

    data T a b

    A Int
    B (T

    data T2 a b

    data T3 a b

    A1 a
    B1 b

    data T4 a b

    A2 a
    B2 b

    data T5 a b

    A3 a
    B3 b

    data T6

    A4
    B4
    C4

    newtype N1 a

    N1 a

    newtype N2 a b

    newtype N3 a b

    N2

    Fields

    n :: a b
     
    • n :: a b
       

    data N4 a b

    newtype N5 a b

    N3

    Fields

    n3 :: a b

    this is the n3 field

    • n3 :: a b

      this is the n3 field

    newtype N6 a b

    N5

    Fields

    n5 :: a b

    no docs on the datatype or the constructor

    • n5 :: a b

      no docs on the datatype or the constructor

    newtype N7 a b

    N6

    Fields

    n6 :: a b
     
    • n6 :: a b
       

    data R

    N7

    Fields

    n7 :: a b
     
    • n7 :: a b
       

    data R1

    C1

    Fields

    p :: Int

    This comment applies to the p field

    q :: forall a. a -> a

    This comment applies to the q field

    r, s :: Int

    This comment applies to both r and s

    • p :: Int

      This comment applies to the p field

    • q :: forall a. a -> a

      This comment applies to the q field

    • r, s :: Int

      This comment applies to both r and s

    C2

    Fields

    t :: T1 -> T2 Int Int -> T3 Bool Bool -> T4 Float Float -> T5 () ()
     
    u, v :: Int
     
    classD a => a => C a where

    Methods

    a :: IO method

    b :: [a]

    class D a where

    Methods

    d :: T a b

    e :: (a, a)

    class E a

    class F a where

    Methods

    ff :: a

    Function types

    f :: C

    g :: IntA hidden module

    hidden :: Int

    data Ex a

    forall b . C b => b => Ex1 b
    C3

    Fields

    s1 :: Int

    The s1 record selector

    s2 :: Int

    The s2 record selector

    s3 :: Int

    The s3 record selector

    forall b . b . Ex2 bforall b . C a => a => Ex3 b
    Ex4 (forallType signatures with argument docs

    k

    l

    m

    o

    f' :: Int

    withoutType :: t

    Produced by Haddock version 2.16.1

    version 2.16.2

    Synopsis

    Documentation

    f :: :: Integer

    Documentation

    f :: a

    Produced by Haddock version 2.15.0

    version 2.16.2

    class C a where

    Methods

    f :: a

    Produced by Haddock version 2.15.0

    version 2.16.2

    data a a :- b

    Q

    f :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    bar :: Integer

    Produced by Haddock version 2.15.0

    version 2.16.2

    data X

    X
    X
    XX
    XXXAssocD * X = = AssocX

    type family Foo a

    data family Bar a

    Bar W = = BarX Z

    Produced by Haddock version 2.16.1

    version 2.16.2

    data a a :-: b

    data (a (a :+: b) c

    data Op a b

    newtype O g f a

    ZA
    ZBwhere

    class a a <=> b

    biO :: (g `O`

    f :: (a ~ b) => a -> b

    g :: (a ~ b, b ~ c) => a -> c

    x :: (a :-:

    y :: (a <=>

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    x :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    Documentation

    visible :: Int

    Produced by Haddock version 2.15.0

    version 2.16.2

    g

    .doc { + display: table-cell; padding-left: 0.5em; margin-bottom: 0.5em; } -.subs dd.empty { - display: none; -} - -.subs dd p { +.subs ul li > .doc p { margin: 0; } -- cgit v1.2.3 From 3ad8ada0ea2982ba7974e381f07e84c35c9559af Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Thu, 6 Aug 2015 21:17:10 +0200 Subject: Extend advanced types test case with other examples. --- html-test/src/AdvanceTypes.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'html-test') diff --git a/html-test/src/AdvanceTypes.hs b/html-test/src/AdvanceTypes.hs index 939fdf07..c89d7396 100644 --- a/html-test/src/AdvanceTypes.hs +++ b/html-test/src/AdvanceTypes.hs @@ -4,6 +4,20 @@ {-# LANGUAGE TypeOperators #-} module AdvanceTypes where + +data RevList a = RNil | RevList a :> a + + data Pattern :: [*] -> * where Nil :: Pattern '[] Cons :: Maybe h -> Pattern t -> Pattern (h ': t) + + +-- Unlike (:), (:>) does not have to be quoted on type level. +data RevPattern :: RevList * -> * where + RevNil :: RevPattern RNil + RevCons :: Maybe h -> RevPattern t -> RevPattern (t :> h) + + +data Tuple :: (*, *) -> * where + Tuple :: a -> b -> Tuple '(a, b) -- cgit v1.2.3 From 66c91a3c20d18f2a2f9ccfbbc7a04bddd5507008 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Thu, 6 Aug 2015 21:22:06 +0200 Subject: Rename advanced types test case and accept new output. --- html-test/ref/AdvanceTypes.html | 97 ------------------- html-test/ref/PromotedTypes.html | 201 +++++++++++++++++++++++++++++++++++++++ html-test/src/AdvanceTypes.hs | 23 ----- html-test/src/PromotedTypes.hs | 25 +++++ 4 files changed, 226 insertions(+), 120 deletions(-) delete mode 100644 html-test/ref/AdvanceTypes.html create mode 100644 html-test/ref/PromotedTypes.html delete mode 100644 html-test/src/AdvanceTypes.hs create mode 100644 html-test/src/PromotedTypes.hs (limited to 'html-test') diff --git a/html-test/ref/AdvanceTypes.html b/html-test/ref/AdvanceTypes.html deleted file mode 100644 index f608efea..00000000 --- a/html-test/ref/AdvanceTypes.html +++ /dev/null @@ -1,97 +0,0 @@ - -AdvanceTypes
    O

    Fields

    unO :: g (f a)
     
    • unO :: g (f a)
       
    Safe HaskellSafe

    AdvanceTypes

    Documentation

    data Pattern :: [*] -> * where

    Constructors

    Nil :: Pattern [] 
    Cons :: Maybe h -> Pattern t -> Pattern (h : t) 
    diff --git a/html-test/ref/PromotedTypes.html b/html-test/ref/PromotedTypes.html new file mode 100644 index 00000000..db42f637 --- /dev/null +++ b/html-test/ref/PromotedTypes.html @@ -0,0 +1,201 @@ + +PromotedTypes
    Safe HaskellSafe

    PromotedTypes

    Documentation

    data RevList a

    Constructors

    RNil 
    (RevList a) :> a 

    data Pattern :: [*] -> * where

    Constructors

    Nil :: Pattern '[] 
    Cons :: Maybe h -> Pattern t -> Pattern (h ': t) 

    data RevPattern :: RevList * -> * where

    Constructors

    RevNil :: RevPattern RNil 
    RevCons :: Maybe h -> RevPattern t -> RevPattern (t :> h) 

    data Tuple :: (*, *) -> * where

    Constructors

    Tuple :: a -> b -> Tuple '(a, b) 
    diff --git a/html-test/src/AdvanceTypes.hs b/html-test/src/AdvanceTypes.hs deleted file mode 100644 index c89d7396..00000000 --- a/html-test/src/AdvanceTypes.hs +++ /dev/null @@ -1,23 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE KindSignatures #-} -{-# LANGUAGE TypeOperators #-} -module AdvanceTypes where - - -data RevList a = RNil | RevList a :> a - - -data Pattern :: [*] -> * where - Nil :: Pattern '[] - Cons :: Maybe h -> Pattern t -> Pattern (h ': t) - - --- Unlike (:), (:>) does not have to be quoted on type level. -data RevPattern :: RevList * -> * where - RevNil :: RevPattern RNil - RevCons :: Maybe h -> RevPattern t -> RevPattern (t :> h) - - -data Tuple :: (*, *) -> * where - Tuple :: a -> b -> Tuple '(a, b) diff --git a/html-test/src/PromotedTypes.hs b/html-test/src/PromotedTypes.hs new file mode 100644 index 00000000..ae3ad375 --- /dev/null +++ b/html-test/src/PromotedTypes.hs @@ -0,0 +1,25 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE TypeOperators #-} + + +module PromotedTypes where + + +data RevList a = RNil | RevList a :> a + + +data Pattern :: [*] -> * where + Nil :: Pattern '[] + Cons :: Maybe h -> Pattern t -> Pattern (h ': t) + + +-- Unlike (:), (:>) does not have to be quoted on type level. +data RevPattern :: RevList * -> * where + RevNil :: RevPattern RNil + RevCons :: Maybe h -> RevPattern t -> RevPattern (t :> h) + + +data Tuple :: (*, *) -> * where + Tuple :: a -> b -> Tuple '(a, b) -- cgit v1.2.3 From 6e0fe19f52445f0a231073b3eff116924d631588 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Mon, 13 Jul 2015 19:26:45 +0200 Subject: Add basic HTML test case for checking instance specialization. --- html-test/src/Instances.hs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 html-test/src/Instances.hs (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs new file mode 100644 index 00000000..d0d68dc3 --- /dev/null +++ b/html-test/src/Instances.hs @@ -0,0 +1,36 @@ +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE FlexibleContexts #-} + + +module Instances where + + +class Foo f where + + foo :: f Int -> a -> f a + foo' :: f (f a) -> Int -> f (f Int) + + foo = undefined + foo' = undefined + +instance Foo Maybe +instance Foo [] +instance (Eq a, Foo f) => Foo ((,) (f a)) +instance Foo (Either a) +instance Foo ((,,) a a) + + +class Foo f => Bar f a where + + bar :: f a -> f Bool -> a + bar' :: f (f a) -> f (f (f b)) + + bar = undefined + bar' = undefined + +instance Bar Maybe Bool +instance Bar Maybe [a] +instance Bar [] (a, a) +instance Foo f => Bar (Either a) (f a) +instance Foo ((,,) a b) => Bar ((,,) a b) (a, b, a) -- cgit v1.2.3 From a314ebd0af69cc1f6c76bfd8242d88d47277fcda Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Mon, 20 Jul 2015 18:16:26 +0200 Subject: Add some test cases for type renamer. --- html-test/src/Instances.hs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index d0d68dc3..8e237fe7 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -1,6 +1,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE ImpredicativeTypes #-} module Instances where @@ -34,3 +35,20 @@ instance Bar Maybe [a] instance Bar [] (a, a) instance Foo f => Bar (Either a) (f a) instance Foo ((,,) a b) => Bar ((,,) a b) (a, b, a) + + +class Baz a where + + baz :: a -> (forall a. a -> a) -> (b, forall c. c -> a) -> (b, c) + baz' :: b -> (forall b. b -> a) -> (forall b. b -> a) -> [(b, a)] + baz'' :: b -> (forall b. (forall b. b -> a) -> c) -> (forall c. c -> b) + + baz = undefined + baz' = undefined + baz'' = undefined + + +instance Baz (a -> b) +instance Baz [c] +instance Baz (a, b, c) +instance Baz (a, [b], b, a) -- cgit v1.2.3 From dbe6f2ce44d28cbd0cad7e5ed3b9e1766fdae8ee Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Tue, 21 Jul 2015 14:47:35 +0200 Subject: Extend instances test case to also test multi-name type signatures. --- html-test/src/Instances.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index 8e237fe7..85c21754 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -26,9 +26,13 @@ class Foo f => Bar f a where bar :: f a -> f Bool -> a bar' :: f (f a) -> f (f (f b)) + bar0, bar1 :: (f a, f a) -> (f b, f c) bar = undefined bar' = undefined + bar0 = undefined + bar1 = undefined + instance Bar Maybe Bool instance Bar Maybe [a] -- cgit v1.2.3 From 2d9b75f5f656aecbc30410350a6e9059a78b1516 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Tue, 21 Jul 2015 14:49:58 +0200 Subject: Fix tab-based indentation in instances test case. --- html-test/src/Instances.hs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index 85c21754..9886fb69 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -43,13 +43,13 @@ instance Foo ((,,) a b) => Bar ((,,) a b) (a, b, a) class Baz a where - baz :: a -> (forall a. a -> a) -> (b, forall c. c -> a) -> (b, c) - baz' :: b -> (forall b. b -> a) -> (forall b. b -> a) -> [(b, a)] - baz'' :: b -> (forall b. (forall b. b -> a) -> c) -> (forall c. c -> b) + baz :: a -> (forall a. a -> a) -> (b, forall c. c -> a) -> (b, c) + baz' :: b -> (forall b. b -> a) -> (forall b. b -> a) -> [(b, a)] + baz'' :: b -> (forall b. (forall b. b -> a) -> c) -> (forall c. c -> b) - baz = undefined - baz' = undefined - baz'' = undefined + baz = undefined + baz' = undefined + baz'' = undefined instance Baz (a -> b) -- cgit v1.2.3 From 1700278e2d5978d098f2acb610442df2bc0ae02a Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Tue, 21 Jul 2015 19:29:58 +0200 Subject: Add new data type declaration to instance specialization test case. --- html-test/src/Instances.hs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index 9886fb69..58bdc873 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -56,3 +56,10 @@ instance Baz (a -> b) instance Baz [c] instance Baz (a, b, c) instance Baz (a, [b], b, a) + + +data Quux a b c = Qx a | Qux a b | Quux a b c + +instance Foo (Quux a b) +instance Bar (Quux a c) (Quux a b c) +instance Baz (Quux a b c) -- cgit v1.2.3 From 3827f2557a52c78ead03350d9e8576278b649745 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Wed, 29 Jul 2015 09:37:41 +0200 Subject: Add basic tests for associated types in instances test case. --- html-test/src/Instances.hs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'html-test') diff --git a/html-test/src/Instances.hs b/html-test/src/Instances.hs index 58bdc873..b7bc8921 100644 --- a/html-test/src/Instances.hs +++ b/html-test/src/Instances.hs @@ -2,6 +2,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ImpredicativeTypes #-} +{-# LANGUAGE TypeFamilies #-} module Instances where @@ -63,3 +64,30 @@ data Quux a b c = Qx a | Qux a b | Quux a b c instance Foo (Quux a b) instance Bar (Quux a c) (Quux a b c) instance Baz (Quux a b c) + + +class Norf a b where + + type Plugh a c b + data Thud a c + + norf :: Plugh a c b -> a -> (a -> c) -> b + + norf = undefined + + +instance Norf Int Bool where + + type Plugh Int [a] Bool = a + type Plugh Int (a, b) Bool = (a, [b]) + + data Thud Int (Quux a [a] c) = Thuud a | Thuuud Int Int + data Thud Int [a] = Thuuuud Bool + + +instance Norf [a] [b] where + + type Plugh [a] (Maybe a) [b] = a + type Plugh [a] [b] [b] = Quux a b (a, b) + + data Thud [a] (a, a, a) = Thd a -- cgit v1.2.3 From 0158692153c342eb84879338aeb99a6bb0221889 Mon Sep 17 00:00:00 2001 From: Łukasz Hanuszczak Date: Fri, 31 Jul 2015 17:05:48 +0200 Subject: Accept tests affected by adding instance details section. --- html-test/ref/Bug26.html | 22 +- html-test/ref/Bug7.html | 40 ++-- html-test/ref/Hash.html | 88 ++++++-- html-test/ref/HiddenInstances.html | 130 ++++++++++-- html-test/ref/HiddenInstancesB.html | 32 ++- html-test/ref/QuasiExpr.html | 92 +++++++- html-test/ref/SpuriousSuperclassConstraints.html | 100 +++++++-- html-test/ref/Test.html | 72 ++++++- html-test/ref/TypeFamilies.html | 256 ++++++++++++++++++----- html-test/ref/ocean.css | 14 +- 10 files changed, 712 insertions(+), 134 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index 8b9e5a7b..e56d3821 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -147,9 +147,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");}; >
    C ()
    C ()

    Methods

    c_f :: ()

    Bar Foo FooJust one instance

    Bar Foo FooJust one instance

    Hash Float 

    Methods

    hash :: Float -> Int

    Hash Int 

    Methods

    hash :: Int -> Int

    (Hash a, Hash b) => Hash (a, b)
    (Hash a, Hash b) => Hash (a, b)
     

    Methods

    hash :: (a, b) -> Int

    VisibleClass Int
    VisibleClass VisibleDataShould be visible

    Num VisibleData
    VisibleClass VisibleDataShould be visible

    Foo BarShould be visible

    Foo BarShould be visible

    Show Expr 

    Methods

    showsPrec :: Int -> Expr -> ShowS

    show :: Expr -> String

    showList :: [Expr] -> ShowS

    Show BinOp 

    Methods

    showsPrec :: Int -> BinOp -> ShowS

    show :: BinOp -> String

    showList :: [BinOp] -> ShowS

    Functor (SomeType f) 

    Methods

    fmap :: (a -> b) -> SomeType f a -> SomeType f b

    (<$) :: a -> SomeType f b -> SomeType f a

    Applicative f => Applicative (SomeType f) 

    Methods

    pure :: a -> SomeType f a

    (<*>) :: SomeType f (a -> b) -> SomeType f a -> SomeType f b

    (*>) :: SomeType f a -> SomeType f b -> SomeType f b

    (<*) :: SomeType f a -> SomeType f b -> SomeType f a

    D Float 

    Methods

    d :: T Float b

    e :: (Float, Float)

    D Int 

    Methods

    d :: T Int b

    e :: (Int, Int)

    Assoc * X

    Associated Types

    data AssocD (X :: k)

    type AssocT (X :: k) :: *

    Test * X
    (><) X XX XXX 
    Assoc * Y

    Associated Types

    data AssocD (Y :: k)

    type AssocT (Y :: k) :: *

    Test * Y
    Test * Y
    Test * XDoc for: instance Test X

    Assoc * Y

    Associated Types

    data AssocD (Y :: k)

    type AssocT (Y :: k) :: *

    Assoc * XDoc for: instance Assoc X

    Associated Types

    data AssocD (X :: k)

    type AssocT (X :: k) :: *

    (><) X XX XXX 
    Date: Fri, 31 Jul 2015 18:28:16 +0200 Subject: Re-accept tests after applying deterministic section identifiers. --- html-test/ref/Bug26.html | 4 +-- html-test/ref/Bug7.html | 8 ++--- html-test/ref/Hash.html | 12 +++---- html-test/ref/HiddenInstances.html | 16 +++++----- html-test/ref/HiddenInstancesB.html | 8 ++--- html-test/ref/QuasiExpr.html | 8 ++--- html-test/ref/SpuriousSuperclassConstraints.html | 8 ++--- html-test/ref/Test.html | 8 ++--- html-test/ref/TypeFamilies.html | 40 ++++++++++++------------ 9 files changed, 56 insertions(+), 56 deletions(-) (limited to 'html-test') diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index e56d3821..18bfa63b 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -147,7 +147,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");}; >
    C ()

    Methods

    Methods

    Methods

    (Hash a,

    Methods

    Methods

    Methods

    Methods

    Methods

    Methods

    D

    Methods

    D

    Methods

    Associated Types

    Test *

    Associated Types

    Test *
    Test *
    Test *

    Associated Types

    Associated Types

    Methods

    (Hash a,

    Methods

    Methods

    Methods

    Methods

    Methods

    D

    Methods

    Associated Types

    Test *

    Associated Types

    Test *
    Test *
    Test *

    Associated Types

    Associated Types

    C ()
    C ()

    Methods

    Bar Foo Foo
    Bar Foo Foo
    Hash Float

    Methods

    Hash Int

    Methods

    (Hash a, Hash b) => Hash (a, b)
    (Hash a, Hash b) => Hash (a, b)
     

    Methods

    VisibleClass Int
    VisibleClass VisibleData
    Num VisibleData

    Methods

    VisibleClass VisibleData
    Foo Bar
    Foo Bar
    Show Expr

    Methods

    Show BinOp

    Methods

    Functor (SomeType f) 

    Methods

    Applicative f => Applicative (SomeType f) 

    Methods

    D Float

    Methods

    D Int

    Methods

    Assoc * X

    Associated Types

    Test * X
    (><) X XX XXX
    Assoc * Y

    Associated Types

    Test * Y
    Test * Y
    Test * X
    Assoc * Y

    Associated Types

    Assoc * X

    Associated Types

    (><) X XX XXX