aboutsummaryrefslogtreecommitdiff
path: root/src/Haddock/Interface
Commit message (Collapse)AuthorAgeFilesLines
* Do not show a subordinate at the top level if its parent is also exportedDavid Waern2009-02-071-6/+44
| | | | See note in the source code for more info.
* Correct commentDavid Waern2009-01-241-2/+2
|
* Filter out separately exported associated types in a smarter wayDavid Waern2009-01-231-17/+19
|
* Fix Trac #50: do not attach docs to pragmas or other kinds of non-declarationsDavid Waern2009-01-221-12/+10
| | | | | We now filter out everything that is not a proper Haskell declaration before collecting the docs and attaching them to declarations.
* Fix Trac #59: TH-generated declarations disappearingDavid Waern2009-01-201-7/+1
| | | | This patch was contributed by Joachim Breitner (nomeata).
* Document H.I.Create.collectDocs betterDavid Waern2009-01-201-1/+4
|
* Export modules also when coming from external packagesDavid Waern2009-01-081-4/+15
| | | | | This seems to have regressed since a refactoring that was part of the 2.3.0 release.
* Show re-exported names from external packages againDavid Waern2009-01-022-12/+39
| | | | | | | This fixes GHC ticket 2746. In order to also link to the exported subordinate names of a declaration, we need to re-introduce the sub map in the .haddock files.
* Make visible names from ExportItemsDavid Waern2008-12-082-59/+19
| | | | | | | | | | | | | | Instead of a complicated calculation of visible names out of GHC's export items, we can get them straight out of the already calculated ExportItems. The ExportItems should represent exactly those items that are visible in an interface. If store all the exported sub-names in ExportDecl instead of only those with documentation, the calculation becomes very simple. So we do this change as well (should perhaps have been a separate patch). This should fix the problem with names from ghc-prim not appearing in the link environment.
* Make named doc comments into ExportDoc instead of ExportDeclDavid Waern2008-10-271-0/+1
| | | | | Fixes a crash when processing modules without export lists containing named docs.
* Tidy up code in H.I.Create a littleDavid Waern2008-10-221-38/+3
| | | | | Remove commented out half-done type instance support, and remove DeclWithDoc synonym.
* Remove subordinate map and its usageDavid Waern2008-10-221-21/+17
| | | | It is not needed now that we store subordinate names in the DeclInfo map.
* Make renamer consistentDavid Waern2008-10-201-9/+12
| | | | | Instead of explicitly making some binders Undocumented, treat all names the same way (that is, try to find a Documented name).
* Document function and improve its layoutDavid Waern2008-10-161-5/+4
|
* Fix #61David Waern2008-10-163-44/+63
| | | | | | | | | | | | | | | | | | | We were not getting docs for re-exported class methods. This was because we were looking up the docs in a map made from the declarations in the current module being rendered. Obviously, re-exported class methods come from another module. Class methods and ATs were the only thing we were looking up using the doc map, everything else we found in the ExporItems. So now I've put subordinate docs in the ExportItem's directly, to make things a bit more consistent. To do this, I added subordinates to the the declarations in the declaration map. This was easy since we were computing subordinates anyway, to store stand-alone in the map. I added a new type synonym 'DeclInfo', which is what we call what is now stored in the map. This little refactoring removes duplicate code to retrieve subordinates and documentation from the HsGroup.
* Add subordinates with docs to the declaration mapDavid Waern2008-10-152-11/+13
| | | | | | | | | | | The only place in the code where we want the subordinates for a declaration is right after having looked up the declaration in the map. And since we include subordinates in the map, we might as well take the opportunity to store those subordinates that belong to a particular declaration together with that declaration. We also store the documentation for each subordinate.
* Move convenient type synonym to H.TypesDavid Waern2008-10-151-5/+0
|
* Comment out unused type family stuff completelyDavid Waern2008-10-151-7/+6
|
* Use type synonyms for declarations and docs in H.I.CreateDavid Waern2008-10-151-13/+19
|
* WibbleDavid Waern2008-10-151-1/+1
|
* Add support for DocPicDavid Waern2008-10-101-0/+1
| | | | | | The support for DocPic was merged into the GHC source long ago, but the support in Haddock was forgotten. Thanks Peter Gavin for submitting this fix!
* Remove ifaceEnv from Interface - it's no longer usedDavid Waern2008-10-021-2/+0
|
* Remove matching on NoteTy in AttachInstances, it has been removedDavid Waern2008-08-121-3/+1
|
* Filter out separately exported ATs (take two)David Waern2008-08-031-2/+5
|
* Do not filter out doc declarationsDavid Waern2008-08-031-0/+2
|
* Move some utility functions from H.I.Create to H.GHC.UtilsDavid Waern2008-08-031-22/+4
|
* Fix layoutDavid Waern2008-08-031-9/+9
|
* Filter out more declarations and keep only vanilla type sigs in classesDavid Waern2008-08-031-5/+18
|
* Filter out separately exported ATsDavid Waern2008-08-031-1/+13
| | | | | This is a quick and dirty hack to get rid of separately exported ATs. We haven't decided how to handle them yet. No warning message is given.
* Use isVanillaLSig from GHC API instead of home brewn functionDavid Waern2008-08-031-6/+1
|
* Filter out more declarationsDavid Waern2008-08-031-14/+25
| | | | | | The previous refactorings in H.I.Create introduced a few bugs. Filtering of some types of declarations that we don't handle was removed. This patch fixes this.
* Filter out ForeignExportsDavid Waern2008-08-031-4/+15
|
* Support type equality predicatesDavid Waern2008-07-281-0/+1
|
* Warning messagesDavid Waern2008-07-251-7/+34
| | | | | | Output a warning when filtering out data/type instances and associated types in instances. We don't show these in the documentation yet, and we need to let the user know.
* Preparation for rendering instances as separate declarationsDavid Waern2008-07-203-41/+101
| | | | | | | | | We want to be able to render instances as separate declarations. So we remove the Name argument of ExportDecl, since instances are nameless. This patch also contains the first steps needed to gather type family instances and display them in the backend, but the implementation is far from complete. Because of this, we don't actually show the instances yet.
* Small touchesDavid Waern2008-07-131-5/+4
|
* Remove unused import from H.I.CreateDavid Waern2008-07-131-2/+0
|
* Remove FastString import and FSLIT macro in H.I.Create -- they were unusedDavid Waern2008-07-131-2/+0
|
* Refactoring in H.Interface.CreateDavid Waern2008-07-132-194/+127
| | | | | | | | | | | | | | | | | | | | | | | | We were creating a doc map, a declaration map and a list of entities separately by going through the HsGroup. These structures were all used to build the interface of a module. Instead of doing this, we can start by creating a list of declarations from the HsGroup, then collect the docs directly from this list (instead of using the list of entities), creating a documentation map. We no longer need the Entity data type, and we can store a single map from names to declarations and docs in the interface, instead of the declaration map and the doc map. This way, there is only one place where we filter out the declarations that we don't want, and we can remove a lot of code. Another advantage of this is that we can create the exports directly out of the list of declarations when we export the full module contents. (Previously we did a look up for each name to find the declarations). This is faster and removes another point where we depend on names to identify exported declarations, which is good because it eliminates problems with instances (which don't have names).
* Get the all locally defined names from GHC APIDavid Waern2008-07-121-8/+1
| | | | | | We previously had some code to compute all locally defined names in a module including subordinate names. We don't need it since we can get the names from modInfoTyThings in the GHC API.
* Stop using the map from exported names to declarationsDavid Waern2008-07-121-11/+10
| | | | | | | | | | | | | | | During creation of the interface, we were using two maps: one from exported names to declarations, and one from all defined names in the module to declarations. The first contained subordinate names while the second one didn't. The first map was never used to look up names not defined in the associated module, so if we add subordinate names to the second map, we could use it everywhere. That's that this patch does. This simplifies code because we don't have to pass around two maps everywhere. We now store the map from locally defined things in the interface structure instead of the one from exported names.
* Remove filtering of instancesDavid Waern2008-07-071-2/+2
| | | | | | | We were filtering out all instances for types with unknown names. This was probably an attempt to filter out instances for internal types. I am removing the filtering for the moment, and will try to fix this properly later.
* More support for type families and associated typesDavid Waern2008-07-021-1/+3
| | | | Now we just need to render the instances
* Rename associated typesDavid Waern2008-06-301-5/+7
|
* Rename type patternsDavid Waern2008-06-301-5/+9
|
* Rename TyFamilyDavid Waern2008-06-301-3/+8
|
* Rename ForeignTypeDavid Waern2008-06-301-4/+3
|
* Add LANGUAGE pragmas to source filesDavid Waern2008-05-011-0/+3
|
* Add a flag for turning off all warningsDavid Waern2008-04-111-6/+6
|
* Change the representation of DocNamesDavid Waern2008-02-092-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ross Paterson reported a bug where links would point to the defining module instead of the "best" module for an identifier (e.g Int pointing to GHC.Base instead of Data.Int). This patch fixes this problem by refactoring the way renamed names are represented. Instead of representing them by: > data DocName = Link Name | NoLink Name they are now represented as such: > data DocName = Documented Name Module | Undocumented Name and the the link-env looks like this: > type LinkEnv = Map Name Module There are several reasons for this. First of all, the bug was caused by changing the module part of Names during the renaming process, without changing the Unique field. This caused names to be overwritten during the loading of .haddock files (which caches names using the NameCache of the GHC session). So we might create new Uniques during renaming to fix this (but I'm not sure that would be problem-free). Instead, we just keep the Name and add the Module where the name is best documented, since it can be useful to keep the original Name around (for e.g. source-code location info and for users of the Haddock API). Also, the names Link/NoLink don't really make sense, since wether to use links or not is entirely up to the users of DocName. In the process of following this change into H.Backends.Html I removed the assumption that binder names are Undocumented (which was just an unnecessary assumption, the OccName is the only thing needed to render these). This will probably make it possible to get rid of the renamer and replace it with a traversal from SYB or Uniplate. Since DocName has changed, InterfaceFile has changed so this patch also increments the file-format version. No backwards-compatibility is implemented.