| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
I like Neil's shorter unL better than unLoc from the GHC API.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Fixes half of #44
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were putting in parenthesis were the user did. Let's remove this since
it just clutters up the types. The types are readable anyway since we print
parens around infix operators and do not rely on fixity levels.
When doing this I discovered that we were relying on user parenthesis when
printin types like (a `O` b) c. This patchs fixes this problem so that
parenthesis are always inserted around an infix op application in case it
is applied to further arguments, or if it's an arguments to a type constructor.
Tests are updated.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cabal file is converted to use the "new" syntax with explicit Library
and Executable sections.
We define the __GHC_PATCHLEVEL__ symbol using a conditinal cpp-options field
in the cabal file. (Ideally, Cabal would define the symbol for us, like it does
for __GLASGOW_HASKELL__).
We use these symbols to #ifdef around a small difference between 6.8.2 and 6.8.3.
Previously, we only supported GHC 6.8.2 officially but the dependencies field
said "ghc <= 6.9". This was just for convenience when testing against the (then
compatible) HEAD version of GHC, and was left in the release by mistake.
Now, we support both GHC 6.8.2 and 6.8.3 and the dependencies field
correctly reflects this.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
<ul>...</u>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Now we just need to render the instances
|