| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
* unused imports
* imports of `Data.List` without import lists
* missing `CompatPrelude` file in `.cabal`
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
We now have a top-level `tyConAppNeedsKindSig` function, which means
that we can delete lots of code in `Convert`.
(cherry picked from commit cfd682c5fd03b099a3d78c44f9279faf56a0ac70)
|
| |
| |
| |
| |
| |
| | |
This fixes #1103 by adapting the corresponding patch for GHC (see
https://gitlab.haskell.org/ghc/ghc/issues/17296 and
https://gitlab.haskell.org/ghc/ghc/merge_requests/1877).
|
| |
| |
| |
| |
| |
| | |
It is possible to fail to extract an HIE ast. This is however not a
reason to produce _no_ output - we should still make a colorized HTML
page.
|
| | |
|
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
At this point, Haddock depended on Cabal-the-library solely for a
verbosity parser (which misleadingly accepts all sorts of verbosity
options that Haddock never uses). Now, the only dependency on Cabal
is for `haddock-test` (which uses Cabal to locate the Haddock interface
files of a couple boot libraries).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The only other change in html/hoogle/hyperlinker output for the boot
libraries that this caused is a fix to some Hoogle output for implicit
params.
```
$ diff -r _build/docs/ old_docs
diff -r _build/docs/html/libraries/base/base.txt old_docs/html/libraries/base/base.txt
13296c13296
< assertError :: (?callStack :: CallStack) => Bool -> a -> a
---
> assertError :: ?callStack :: CallStack => Bool -> a -> a
```
|
| | |
|
| | |
|
| |
| |
| |
| | |
(cherry picked from commit 3ee6526d4ae7bf4deb7cd1caf24b3d7355573576)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before LLVM 6.0.1 (or 10.0 on Apple LLVM), there was a bug where
lines that started with an octothorpe but turned out not
to lex like pragmas would have an extra line added after them.
Since this bug has been fixed upstream and that it doesn't have dire
consequences anyways, the workaround is not really worth it
anymore - we can just tell people to update their clang version (or re-structure
their pragma code).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After this commit, we can run with `--latex` on all boot libraries
without crashing (although the generated LaTeX still fails to compile in
a handful of larger packages like `ghc` and `base`).
* Add newlines after all block elements in LaTeX. This is important to
prevent the final output from being more an more indented. See the
`latext-test/src/Example` test case for a sample of this.
* Support associated types in class declarations (but not yet defaults)
* Several small issues for producing compiling LaTeX;
- avoid empy `\haddockbeginargs` lists (ex: `type family Any`)
- properly escape identifiers depending on context (ex: `Int#`)
- add `vbox` around `itemize`/`enumerate` (so they can be in tables)
* Several spacing fixes:
- limit the width of `Pretty`-arranged monospaced code
- cut out extra space characters in export lists
- only escape spaces if there are _multiple_ spaces
- allow type signatures to be multiline (even without docs)
* Remove uninteresting and repetitive `main.tex`/`haddock.sty` files
from `latex-test` test reference output.
Fixes #935, #929 (LaTeX docs for `text` build & compile)
Fixes #727, #930 (I think both are really about type families...)
|
| |
| |
| |
| |
| |
| |
| |
| | |
`markupWarning` often processes inputs which span across paragraphs.
Unfortunately, LaTeX's `emph` is not made to handle this (and will
crash).
Fixes #936.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* default methods now get rendered differently
* default associated types get rendered
* fix a forgotten `s/TypeSig/ClassOpSig/` refactor in LaTeX backend
* LaTeX backend now renders default method signatures
NB: there is still no way to document default class members and the
NB: LaTeX backend still crashes on associated types
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Docs on standalone deriving decls for classes with associated types
should be associated with the class instance, not the associated type
instance.
Fixes #1033
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The information about whether or not there is a source-level `forall`
is already available on a `ConDecl` (as `con_forall`), so we should use
it instead of always assuming `False`!
Fixes #1002.
|
| | |
| | |
| | | |
Fixes #992
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* WIP: Load (typechecker) plugins from language pragmas
* Revert "Load plugins when starting a GHC session (#905)"
This reverts commit 72d82e52f2a6225686d9668790ac33c1d1743193.
* Simplify plugin initialization code
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* don't forget to print explicit `forall`'s when there are arg docs
* when printing an explicit `forall`, print all tyvars
Fixes #973
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In https://gitlab.haskell.org/ghc/ghc/merge_requests/1970 I propose a
simpler way to encode location information into the GHC and Haddock AST
while incurring no cost for e.g. TH which doesn't need location
information.
These are just changes that have to happen in lock step.
|
| | | |
|
| | | |
|
| | |
| | |
| | | |
This is needed to compile `haddock` when [GHC Proposal #229](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns.rst) is implemented.
|
| | |
| | |
| | | |
This change has no functional effect on haddock itself, it just changes one pattern to use `_ (` rather than `_(`, so that we may use `_(` as a token for extended typed-holes later.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `hsq_ext` field of `HsQTvs` is now just the implicit variables
(instead of also including information about which of these variables
are dependent).
This commit shouldn't change any functionality in Haddock.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
`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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before LLVM 6.0.1 (or 10.0 on Apple LLVM), there was a bug where
lines that started with an octothorpe but turned out not
to lex like pragmas would have an extra line added after them.
Since this bug has been fixed upstream and that it doesn't have dire
consequences anyways, the workaround is not really worth it
anymore - we can just tell people to update their clang version (or re-structure
their pragma code).
|
| | | |
|
|/ /
| |
| |
| |
| | |
We now have a top-level `tyConAppNeedsKindSig` function, which means
that we can delete lots of code in `Convert`.
|
| |
| |
| |
| |
| |
| |
| | |
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
|