|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | | | | 
| | | | 
| | | | | The `ignore-exports` option has been broken since #688, as mentioned in https://github.com/haskell/haddock/pull/766#issue-172505043. This PR fixes it. | 
| | | | | |  | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | (cherry picked from commit 3ee6526d4ae7bf4deb7cd1caf24b3d7355573576) | 
| | | |\ \ |  | 
| | | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | | Docs on standalone deriving decls for classes with associated types
should be associated with the class instance, not the associated type
instance.
Fixes #1033 | 
| | | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | | This avoids a situation in which an identifier would get defaulted to
a completely different identifier. Prior to this commit, the 'Bug1035'
test case would hyperlink 'Foo' into 'Bar'!
Fixes #1035. | 
| | | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | | * '(<|>)' and '`elem`' now get parsed and rendered properly as links
  * 'DbModule'/'DbUnitId' now properly get split apart into two links
  * tuple names now get parsed properly
  * some more small niceties...
The identifier parsing code is more precise and more efficient (although to be
fair: it is also longer and in its own module). On the rendering side, we need
to pipe through information about backticks/parens/neither all the way through
from renaming to the backends.
In terms of impact: a total of 35 modules in the entirety of the bootlib + ghc
lib docs change. The only "regression" is things like '\0'. These should be
changed to @\\0@ (the path by which this previously worked seems accidental). | 
| | | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | 
| | | | | | Identifier links can be prefixed with a 'v' or 't' to indicate the value or
type namespace of the desired identifier. For example:
-- | Some link to a value: v'Data.Functor.Identity'
--
-- Some link to a type: t'Data.Functor.Identity'
The default is still the type (with a warning about the ambiguity) | 
| | |_|_|/  
|/| | |   
| | | |   
| | | | | (cherry picked from commit a7d1d8e034d25612d5d08ed8fdbf6f472aded4a1) | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | See ghc/ghc!852. | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | 
| | | | | These changes are a part of a fix for
[GHC#17992](https://gitlab.haskell.org/ghc/ghc/issues/17992). | 
| | | | | |  | 
| | | | | |  | 
| |\ \ \ \  
| | | | | 
| | | | | 
| | | | | | More changes from the GHC types module refactoring. | 
| | | | | | |  | 
| |/ / / / |  | 
| |\ \ \ \  
| | | | | 
| | | | | | Modules: Core (#13009) | 
| | | | | | |  | 
| |/ / / / |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | |  | 
| | | | | 
| | | | 
| | | | 
| | | | | See https://gitlab.haskell.org/ghc/ghc/merge_requests/2372 | 
| | | | | |  | 
| |/ / / |  | 
| | | | |  | 
| | | | |  | 
| | | | |  | 
| | | | |  | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | `FunTy` now has an `AnonArgFlag` that indicates whether the arrow is
a `t1 => t2` or `t1 -> t2`.
This commit shouldn't change any functionality in Haddock. | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | | Changes in 19626218566ea709b5f6f287d3c296b0c4021de2 affected some
of the hyperlinker output. Accepted the new output (hovering over a
`..` now shows you what that wildcard binds).
Also fixed some stray deprecation warnings. | 
| |/ / |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | 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 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | | # 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 | 
| | | |  | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | | 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)`) | 
| | | 
| | 
| | 
| | | It got introduced in ghc/ghc@ae2c9b40f5b6bf272251d1f4107c60003f541b62. |