projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Massive patch for the first months work adding System FC to GHC #15
[ghc-hetmet.git]
/
compiler
/
typecheck
/
TcInstDcls.lhs
diff --git
a/compiler/typecheck/TcInstDcls.lhs
b/compiler/typecheck/TcInstDcls.lhs
index
45338d0
..
c610594
100644
(file)
--- a/
compiler/typecheck/TcInstDcls.lhs
+++ b/
compiler/typecheck/TcInstDcls.lhs
@@
-51,7
+51,6
@@
pass, when the class-instance envs and GVE contain all the info from
all the instance and value decls. Indeed that's the reason we need
two passes over the instance decls.
all the instance and value decls. Indeed that's the reason we need
two passes over the instance decls.
-
Here is the overall algorithm.
Assume that we have an instance declaration
Here is the overall algorithm.
Assume that we have an instance declaration
@@
-451,7
+450,10
@@
tcMethods origin clas inst_tyvars' dfun_theta' inst_tys'
let
prag_fn = mkPragFun uprags
all_insts = avail_insts ++ catMaybes meth_insts
let
prag_fn = mkPragFun uprags
all_insts = avail_insts ++ catMaybes meth_insts
- tc_method_bind = tcMethodBind inst_tyvars' dfun_theta' all_insts prag_fn
+ sig_fn n = Just [] -- No scoped type variables, but every method has
+ -- a type signature, in effect, so that we check
+ -- the method has the right type
+ tc_method_bind = tcMethodBind inst_tyvars' dfun_theta' all_insts sig_fn prag_fn
meth_ids = [meth_id | (_,meth_id,_) <- meth_infos]
in
meth_ids = [meth_id | (_,meth_id,_) <- meth_infos]
in