|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| | The central trick in this patch is to use `dataConUserTyVars` instead of
`univ_tvs ++ ex_tvs`, which displays the foralls in a GADT constructor in
a way that's more faithful to how the user originally wrote it.
Fixes #1015. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Now that Haddock is moving towards working entirely over `.hi` and `.hie` files,
all declarations and types are going to be synthesized via the `Convert` module.
In preparation for this change, here are a bunch of fixes to this module:
  * Add kind annotations to type variables in `forall`'s whose kind is not `Type`,
    unless the kind can be inferred from some later use of the variable. See
    `implicitForAll` and `noKindTyVars` in particular if you wish to dive into this.
  * Properly detect `HsQualTy` in `synifyType`. This is done by following suit with
    what GHC's `toIfaceTypeX` does and checking the first argument of
    `FunTy{} :: Type` to see if it classified as a given/wanted in the typechecker
    (see `isPredTy`). 
  * Beef up the logic around figuring out when an explicit `forall` is needed. This
    includes: observing if any of the type variables will need kind signatures, if the
    inferred type variable order _without_ a forall will still match the one GHC
    claims, and some other small things.
  * Add some (not yet used) functionality for default levity polymorphic type
    signatures. This functionality similar to `fprint-explicit-runtime-reps`.
Couple other smaller fixes only worth mentioning:
  * Show the family result signature only when it isn't `Type`
  * Fix rendering of implicit parameters in the LaTeX and Hoogle backends
  * Better handling of the return kind of polykinded H98 data declarations
  * Class decls produced by `tyThingToLHsDecl` now contain associated type
    defaults and default method signatures when appropriate
  * Filter out more `forall`'s in pattern synonyms | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The circumstances under which this module appeared are completely gone.
The Hyperlinker backend no longer needs this module (it uses the more
efficient `Encoding` module from `ghc`).
Why no deprecation? Because this module really shouldn't exist!
  - It isn't used in `haddock-library`/`haddock-api` anymore
  - It was copy pasted directly from `utf8-string`
  - Folks seeking a boot-lib only solution can use `ghc`'s `Encoding` | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * Amend `ParserSpec` to match new Hyperlinker API
    - pass in compiler info
    - strip out null tokens
* Make `hypsrc-test` pass reliably
    - strip out `local-*` ids
    - strip out `line-*` ids from the `ClangCppBug` test
    - re-accept output | 
| | 
| 
| 
| | Should help make CI be less broken | 
| | |  | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | # Summary
This is a large architectural change to the Hyperlinker.
  * extract link (and now also type) information from `.hie` instead
    of doing ad-hoc SYB traversals of the `RenamedSource`. Also
    adds a superb type-on-hover feature (#715).
 * re-engineer the lexer to avoid needless string conversions. By going
    directly through GHC's `P` monad and taking bytestring slices, we
    avoid a ton of allocation and have better handling of position
    pragmas and CPP.
In terms of performance, the Haddock side of things has gotten _much_
more efficient. Unfortunately, much of this is cancelled out by the
increased GHC workload for generating `.hie` files. For the full set of
boot libs (including `ghc`-the-library)
  * the sum of total time went down by 9-10% overall
  * the sum of total allocations went down by 6-7%
# Motivation
Haddock is moving towards working entirely over `.hi` and `.hie` files.
This change means we no longer need the `RenamedSource` from
`TypecheckedModule` (something which is _not_ in `.hi` files).
# Details
Along the way a bunch of things were fixed:
 * Cross package (and other) links are now more reliable (#496)
 * The lexer tries to recover from errors on every line (instead of at CPP
    boundaries)
 * `LINE`/`COLUMN` pragmas are taken into account
 * filter out zero length tokens before rendering
 * avoid recomputing the `ModuleName`-based `SrcMap`
 * remove the last use of `Documentation.Haddock.Utf8` (see  #998)
 * restructure temporary folder logic for `.hi`/`.hie` model | 
| | |  | 
| | 
| 
| 
| | Since 53874834b779ad0dfbcde6650069c37926da1b79 in GHC, "GHC.Maybe"
is marked as `not-home`. That changes around some test output. | 
| | |  | 
| | 
| 
| | Fixes #885. | 
| | 
| 
| 
| | The functionality is easily inlined into one short function: `gmapEverywhere`.
This doesn't warrant pulling in another package. | 
| | 
| 
| 
| 
| 
| 
| 
| | * Synify and render properly promoted type variables
Fixes #923.
* Accept output | 
| | 
| 
| 
| 
| 
| 
| | This commit should not introduce any change in functionality!
  * consistently use `getOccString` to convert `Name`s to strings
  * compare names directly when possible (instead of comparing strings)
  * get rid of unused utility functions | 
| | 
| 
| 
| | This will make investigation of #979 easier | 
| | 
| 
| 
| 
| 
| 
| | * remove redundant imports (only brought to light due to recent work for
  improving redundant import detection)
* fix a bug that was casuing exports to appear in reverse order
* fix something in haddock-library that prevented compilation on old GHC's | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Trac Issues #15495
This patch removes the ping-pong style from HsPat (only, for now), using the plan laid out at https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations (solution A).
- the class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`), are introduced
- some instances of `HasSrcSpan` are introduced
- some constructors `L` are replaced with `cL`
- some patterns `L` are replaced with `dL->L` view pattern
- some type annotation are necessarily updated (e.g., `Pat p` --> `Pat (GhcPass p)`) | 
| |\  
| | 
| | | Follow GHC HEAD's HsTypes.Promoted -> BasicTypes.PromotionFlag change | 
| |/  
|   
|   
| | It got introduced in ghc/ghc@ae2c9b40f5b6bf272251d1f4107c60003f541b62. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
For links in subpackages as well.
https://phabricator.haskell.org/D5257
Test Plan: Manually verify links
Reviewers: mpickering, bgamari, osa1
Reviewed By: osa1
GHC Trac Issues: #15733
Differential Revision: https://phabricator.haskell.org/D5262 | 
| |\ |  | 
| | |\  
| | | 
| | | | Introduce NewOcean theme. | 
| | | | |  | 
| | | | |  | 
| | | |\  
| | |/  
| |/| |  | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | Correspondingly, we wrap all inline/diplay math in
    <span class="mathjax"> ... the math .... </span>
This fixes #959. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | * Fix misplaced Haddocks in Haddock itself
Haddock should be able to generate documentation for 'haddock-api'
again.
* Make CI check that documentation can be built.
* Add back a doc that is OK | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | AFAICT this wasn't causing any crashes, but that's mostly because
we happen not to be forcing `pkgStr` when it would diverge. We come
dangerously close to doing that in `ppHtmlIndex`.
Fixes #569. | 
| | | | 
| | | 
| | | 
| | | 
| | | | Also, functions and data decls now have the same space before and after
them. | 
| | | | |  | 
| | | | |  | 
| | | | |  | 
| | | | 
| | | 
| | | 
| | | 
| | | | In the unfortunate event that the "Contents" summary doesn't fit
vertically (like in the "Prelude"), it will be scrollable. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | | * swap the minimize unicode to something more intuitive
  * use new unicode expander/collapser for instance lists
  * address some alignment issues in the "index" page | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | This reverts commit f909ffd8353d6463fd5dd184998a32aa98d5c922.
I missed the fact this also forces the 'Contents' to always go down
to the bottom of the page. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | | This only happens if the contents block on the left is so big that it
doesn't fit (vertically) on the page. If that happens, we want it to
be scrollable. | 
| | | | |  | 
| | | | |  | 
| | | |\  
| | |/  
| |/| |  | 
| | | | 
| | | 
| | | 
| | | 
| | | | This fixes #953 by passing more names into the generated ids. | 
| | | | |  | 
| | | | |  | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | I think thst CSS was meant only to deal with fields and the
effect on bullets was accidental.
Fixes #926. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | Here's these changes are supposed to do:
  * put the synopsis back on the right side
  * properly have it on the edge of the screen on wide screens
  * adjust the background of the synopsis to match the button
    (otherwise the grey blends in with what is underneath)
  * get rid of the dotted purple line
  * the synopsis contents are now scrollable even when in wide
    screens (this has been a long-standing bug) | 
| | | | |  | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | This fixes #810. Looks like things were broken during the quickjump
refactor of the JS.
For the (git) record: I do not think the style switcher is a good idea.
I'm fixing it for the same reason @mzero added it; as an answer to
  "rumblings from some that they didn't want their pixels changed on bit" | 
| | | | 
| | | 
| | | 
| | | 
| | | | This was done via `npm audit fix`. I think this fixes #903 along with
some more serious vulnerabilities that nobody seems to have noticed. | 
| | | | |  | 
| | | | |  |