aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock/Interface
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Recode Doc to Json. (#1159)Ignat Insarov2020-04-091-5/+162
| | | | | | | | | | | | | | | * Recode Doc to Json. * More descriptive field labels.
| * | Cleanup up GHC flags in `.cabal` filesAlec Theriault2020-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * enable more useful warning flags in `haddock-api`, handle the new warnings generated * remove `-fwarn-tabs` (now we'd use `-Wtabs`, but this has been in `-Wall` for a while now)
| * | Use `unLoc`/`noLoc` from GHC instead of `unL`/`reL`Alec Theriault2020-03-281-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | * `unL` is already defined by GHC as `unLoc` * `reL` is already defined by GHC as `noLoc` (in a safer way too!) * Condense `setOutputDir` and add a about exporting from GHC Fixes #978
| * | Use TTG empty extensions to remove some `error`'sAlec Theriault2020-03-282-14/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | None of these error cases should ever have been reachable, so this is just a matter of leveraging the type system to assert this. * Use the `NoExtCon` and `noExtCon` to handle case matches for no extension constructors, instead of throwing an `error`. * Use the extension field of `HsSpliceTy` to ensure that this variant of `HsType` cannot exist in an `HsType DocNameI`.
| * | Clean up warningsAlec Theriault2020-03-224-5/+3
| | | | | | | | | | | | | | | | | | * unused imports * imports of `Data.List` without import lists * missing `CompatPrelude` file in `.cabal`
| * | Merge branch 'ghc-8.8' into ghc-8.10Alec Theriault2020-03-205-138/+213
| |\ \
| | * | Fix the ignore-exports option (#1082)Alexis King2019-09-301-4/+5
| | | | | | | | | | | | 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.
| | * | Comment C, which clarifies why e.g. ReadP is not enoughOleg Grenrus2019-05-131-0/+7
| | | |
| | * | Redo ParseModuleHeaderOleg Grenrus2019-05-131-93/+125
| | | |
| | * | Matching changes in GHC for #16236Alan Zimmerman2019-03-292-5/+5
| | | | | | | | | | | | | | | | (cherry picked from commit 3ee6526d4ae7bf4deb7cd1caf24b3d7355573576)
| | * | Merge branch 'ghc-8.6' into ghc-8.8Alec Theriault2019-03-031-2/+2
| | |\ \
| | | * | Fix standalone deriving docsAlec Theriault2019-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Docs on standalone deriving decls for classes with associated types should be associated with the class instance, not the associated type instance. Fixes #1033
| | * | | Fix bogus identifier defaultingAlec Theriault2019-02-261-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * | | Better identifier parsingAlec Theriault2019-02-253-28/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '(<|>)' 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).
| | * | | Support value/type namespaces on identifier linksAlec Theriault2019-02-252-15/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | | | | Match GHC, adding IsUnicodeSyntax field to HsFunTy and HsScaledAlan Zimmerman2020-10-213-10/+10
| |_|_|/ |/| | | | | | | | | | | (cherry picked from commit a7d1d8e034d25612d5d08ed8fdbf6f472aded4a1)
* | | | Use functions exported from HsToCoreZubin Duggal2020-06-213-183/+3
| | | |
* | | | Adapt Haddock to LinearTypesKrzysztof Gogolewski2020-06-174-20/+39
| | | | | | | | | | | | | | | | See ghc/ghc!852.
* | | | Use HsForAllTelescope (GHC#18235)Ryan Scott2020-06-133-11/+32
| | | |
* | | | Fix after unit refactoringSylvain Henry2020-06-081-12/+11
| | | |
* | | | Explicit Specificity Support for HaddockGert-Jan Bottu2020-05-202-15/+15
| | | |
* | | | Fix for GHC.Unit.* modulesSylvain Henry2020-04-273-4/+4
| | | |
* | | | UnitId has been renamed into UnitSylvain Henry2020-04-271-6/+6
| | | |
* | | | Module structureSylvain Henry2020-04-246-14/+12
| | | |
* | | | Module renamingSylvain Henry2020-04-103-4/+4
| | | |
* | | | Make NoExtCon fields strictRyan Scott2020-04-072-18/+0
| | | | | | | | | | | | | | | | | | | | These changes are a part of a fix for [GHC#17992](https://gitlab.haskell.org/ghc/ghc/issues/17992).
* | | | Module renaming: amend previous patchSylvain Henry2020-04-051-1/+1
| | | |
* | | | Modules: type checkerSylvain Henry2020-03-301-1/+1
| | | |
* | | | Merge commit '3c2944c037263b426c4fe60a3424c27b852ea71c' into HEADBen Gamari2020-03-234-5/+5
|\ \ \ \ | | | | | | | | | | | | | | | More changes from the GHC types module refactoring.
| * | | | Modules: TypesSylvain Henry2020-03-207-25/+25
| | | | |
* | | | | Modules: TypesSylvain Henry2020-03-187-25/+25
|/ / / /
* | | | Merge pull request #1130 from hsyl20/wip/hsyl20-modules-core2Ben Gamari2020-03-162-6/+6
|\ \ \ \ | | | | | | | | | | Modules: Core (#13009)
| * | | | Modules: Core (#13009)Sylvain Henry2020-03-022-6/+6
| | | | |
* | | | | Changes in GHC's !1913.Richard Eisenberg2020-03-091-2/+2
|/ / / /
* | | | Ignore the BufLoc/BufSpan added in GHC's !2516Vladislav Zavialov2020-02-281-2/+2
| | | |
* | | | Modules: Core (#13009)Sylvain Henry2020-02-251-1/+1
| | | |
* | | | Use RealSrcSpan in InstMapVladislav Zavialov2020-02-221-18/+12
| | | |
* | | | Modules: Driver (#13009)Sylvain Henry2020-02-194-5/+5
| | | |
* | | | Changes for GHC#17608Ryan Scott2020-01-081-3/+4
| | | | | | | | | | | | | | | | See https://gitlab.haskell.org/ghc/ghc/merge_requests/2372
* | | | hsyl20-modules-renamerSylvain Henry2020-01-071-1/+1
| | | |
* | | | Remove HasSrcSpan (#17494)Vladislav Zavialov2019-11-281-7/+7
|/ / /
* | | Changes for #15247Ryan Scott2019-07-033-105/+105
| | |
* | | Match changes with #14332Ryan Scott2019-05-221-3/+15
| | |
* | | Changes for #16110/#16356Ryan Scott2019-05-141-18/+7
| | |
* | | Visible dependent quantification (#16326) changesRyan Scott2019-02-272-5/+6
| | |
* | | Match GHC changes for T16185Alec Theriault2019-02-221-3/+3
| | | | | | | | | | | | | | | | | | | | | `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.
* | | Fix tests broken by GHCAlec Theriault2019-02-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Matching changes in GHC for #16236Alan Zimmerman2019-02-052-5/+5
|/ /
* | Miscellaneous improvements to `Convert` (#1020)Alec Theriault2019-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Use `.hie` files for the Hyperlinker backend (#977)Alec Theriault2019-01-311-37/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # 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