| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
This patch refactors TcRnDriver to make the top-level structure
easier to understand.
The change was driven by Trac #924, and this patch fixes that bug.
When comparing a module against its hs-boot file, we must ensure that
the module exports everything that the hs-boot file exports.
|
|
|
|
|
| |
its root. Also gets rid of the getDeclMainBinder function which isn't needed
anylonger.
|
|
|
|
|
|
|
|
|
|
| |
- This patch cleans up the HsSyn representation of type family declarations.
- The new representation is not only less delicate, it also simplified teh code
a bit.
- I took the opportunity of stream lining the terminology and function names
at the same time.
- I also updated the description on the wiki at
<http://hackage.haskell.org/trac/ghc/wiki/TypeFunctionsSyntax>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tidy-up, triggered by Trac #1068, re-factors the way that 'deriving'
happens. It took me way longer than I had intended. The main changes,
by far are to TcDeriv; everyting else is a minor consequence.
While I was at it, I changed the syntax for standalone deriving, so that
it goes
derive instance Show (T a)
(instead of "derive Show for T"). However, there's still an implicit
context, generated by the deriving code, and I wonder if it shouldn't really
be
derive instance (..) => Show (T a)
but I have left it simple for now.
I also added a function Type.substTyVars, and used it here and there, which
led to some one-line changes otherwise unrelated (sorry).
Loose ends:
* 'deriving Typeable' for indexed data types is still not right
* standalone deriving should be documented
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is a bit of a hack to avoid a duplicate error when checking
class C a where
op :: a -> a
op2 x = x
(This is tcfail077)
For reasons I don't understand, the decl of op2 generates an HsDeclEntity,
and that gives a renamer error which duplicates the (better) one that
comes from rnMethodBinds.
A better fix might be to get rid of HsDeclEntities altogether.
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Not sure whether I do the right thing, because I don't understand the
doc stuff. However, the original code was definitely wrong and
breaking the renaming of family instance declarations.
- The important point is that in
data instance T pats = rhs
T is *not* a defining occurence of T (similarly as C is not a defining
occurence in "instance C Int").
|
|
|
|
|
|
|
|
|
| |
With the new Haddock patch, renamer errors can be duplicated;
so we want to bale out before doing the Haddock stuff if errors
are found.
(E.g test mod67 shows this up.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I had forgotten to bring scoped type variables into scope at an expression
type signature, such as
e :: forall s. <type>
where 's' should scope over the expression e.
Like everything to do with scoped type variables, fixing this took an
unreasonable amount of work. I'm sure there must be a better way to
achitect this!
I updated the user manual too.
A test is tc213.
It would be good to push this into 6.6.1
|
|
|
|
|
|
|
| |
Mon Sep 18 19:34:38 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Fixed two bugs concerning fanilies
Mon Sep 4 20:59:49 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Fixed two bugs concerning fanilies
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mon Sep 18 18:39:03 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Kind and type checking of indexed types
Fri Aug 11 16:09:13 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Kind and type checking of indexed types
- Type checking of kind signatures
- Kind and type checking of instances of indexed types
- Validity checks for ATs are still *missing* (ie, that the type indexes
coincide with the class parameters and that the defined ATs really belong to
the class).
|
|
|
|
|
| |
Sat Aug 26 19:49:55 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Check for repeated tyvars in AT family decls
|
|
|
|
|
| |
Wed Aug 9 15:31:08 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Don't lift ATs out of classes and instances before tc
|
|
|
|
|
| |
Thu Aug 3 19:29:38 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Added error checks & fixed bugs
|
|
|
|
|
| |
Tue Aug 1 23:51:38 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Renaming of indexed types
|
|
|
|
|
| |
Tue Aug 1 16:39:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Renaming of kind signatures (rnTySig)
|
|
|
|
|
|
|
|
| |
Wed Jul 26 18:16:25 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Fix migrated AT support
- Make it compile
- Successfully parses and renames simple AT declarations
- Should not affect non-AT programs
|
|
|
|
|
|
|
|
|
| |
Wed Jul 26 17:46:55 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Migrate cvs diff from fptools-assoc branch
- Syntactic support for associated types
- Renamer support for associated types
- ATs are only allowed with -fglasgow-exts
- Handle ATs in the type and class declaration kinding knot-tying exercise
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously we checked the form of the arguments of a RULE lhs, to
ensure that they were simple applications. There was no good reason
for that, save to prevent you writing LHSs that were unlikely to match.
And Don Stewart found he wanted to do something we didn't allow (a section,
I think). So I have just disabled the check.
|
|
|
|
| |
See #815
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Consider
class C a where
op :: forall b. a -> b -> b
op = <rhs>
Then 'b' should be in scope in <rhs>. I had omitted this case.
This patch fixes it.
|
| |
|
|
Most of the other users of the fptools build system have migrated to
Cabal, and with the move to darcs we can now flatten the source tree
without losing history, so here goes.
The main change is that the ghc/ subdir is gone, and most of what it
contained is now at the top level. The build system now makes no
pretense at being multi-project, it is just the GHC build system.
No doubt this will break many things, and there will be a period of
instability while we fix the dependencies. A straightforward build
should work, but I haven't yet fixed binary/source distributions.
Changes to the Building Guide will follow, too.
|