[commit: ghc] master: Merge branch 'master' of http://darcs.haskell.org//ghc (6403540)
Simon Peyton Jones
simonpj at microsoft.com
Tue Mar 27 14:45:28 CEST 2012
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/6403540416c22421516c91b12df630d4dce17686
>---------------------------------------------------------------
commit 6403540416c22421516c91b12df630d4dce17686
Merge: a44c3d9... bcb5995...
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Mon Mar 26 09:12:57 2012 +0100
Merge branch 'master' of http://darcs.haskell.org//ghc
Conflicts:
compiler/hsSyn/Convert.lhs
compiler/hsSyn/HsDecls.lhs
compiler/basicTypes/Name.lhs | 3 +
compiler/basicTypes/OccName.lhs | 8 ++-
compiler/basicTypes/RdrName.lhs | 4 +
compiler/cmm/Cmm.hs | 8 --
compiler/codeGen/ClosureInfo.lhs | 8 ++
compiler/codeGen/StgCmmClosure.hs | 7 ++
compiler/coreSyn/CoreLint.lhs | 10 +++
compiler/coreSyn/MkExternalCore.lhs | 11 ++--
compiler/coreSyn/TrieMap.lhs | 38 ++++++++++-
compiler/deSugar/Desugar.lhs | 2 +-
compiler/deSugar/DsBinds.lhs | 91 ++++++++++++++-----------
compiler/deSugar/DsExpr.lhs | 8 ++-
compiler/deSugar/Match.lhs | 2 +-
compiler/deSugar/MatchCon.lhs | 15 +++--
compiler/hsSyn/Convert.lhs | 1 -
compiler/hsSyn/HsDecls.lhs | 4 +-
compiler/hsSyn/HsImpExp.lhs | 19 ++++--
compiler/hsSyn/HsSyn.lhs | 3 +-
compiler/hsSyn/HsTypes.lhs | 18 +++++
compiler/iface/BinIface.hs | 20 ++++++
compiler/iface/IfaceSyn.lhs | 1 +
compiler/iface/IfaceType.lhs | 26 +++++++-
compiler/iface/TcIface.lhs | 7 ++
compiler/main/DynFlags.hs | 9 ++-
compiler/parser/Lexer.x | 14 ++++
compiler/parser/Parser.y.pp | 36 +++++-----
compiler/parser/RdrHsSyn.lhs | 51 ++++++++++++++-
compiler/prelude/PrelNames.lhs | 43 +++++++++++-
compiler/prelude/TysPrim.lhs | 7 ++
compiler/rename/RnNames.lhs | 2 +-
compiler/rename/RnTypes.lhs | 8 ++
compiler/stgSyn/StgLint.lhs | 7 --
compiler/typecheck/TcCanonical.lhs | 5 ++
compiler/typecheck/TcErrors.lhs | 1 +
compiler/typecheck/TcEvidence.lhs | 49 +++++++++++++
compiler/typecheck/TcForeign.lhs | 4 +-
compiler/typecheck/TcHsSyn.lhs | 1 +
compiler/typecheck/TcHsType.lhs | 7 ++
compiler/typecheck/TcInteract.lhs | 10 +++
compiler/typecheck/TcMType.lhs | 8 ++-
compiler/typecheck/TcSimplify.lhs | 3 +-
compiler/typecheck/TcSplice.lhs | 5 ++
compiler/typecheck/TcTyDecls.lhs | 6 +-
compiler/typecheck/TcType.lhs | 24 +++++--
compiler/typecheck/TcUnify.lhs | 5 ++
compiler/types/Coercion.lhs | 1 +
compiler/types/FamInstEnv.lhs | 1 +
compiler/types/Kind.lhs | 1 +
compiler/types/Type.lhs | 47 ++++++++++++-
compiler/types/TypeRep.lhs | 27 +++++++-
compiler/utils/ListSetOps.lhs | 6 --
compiler/vectorise/Vectorise/Convert.hs | 9 ++-
compiler/vectorise/Vectorise/Type/Classify.hs | 1 +
compiler/vectorise/Vectorise/Type/Type.hs | 1 +
mk/validate-settings.mk | 2 +-
55 files changed, 585 insertions(+), 130 deletions(-)
diff --cc compiler/hsSyn/Convert.lhs
index d5f1d71,b0cd2f4..90deaa7
--- a/compiler/hsSyn/Convert.lhs
+++ b/compiler/hsSyn/Convert.lhs
@@@ -287,10 -280,29 +287,9 @@@ cvt_tyinst_hdr :: TH.Cxt -> TH.Name ->
cvt_tyinst_hdr cxt tc tys
= do { cxt' <- cvtContext cxt
; tc' <- tconNameL tc
- ; tvs <- concatMapM collect tys
- ; tvs' <- cvtTvs tvs
; tys' <- mapM cvtType tys
- ; return (cxt', tc', tvs', Just tys')
- }
- where
- collect (ForallT _ _ _)
- = failWith $ text "Forall type not allowed as type parameter"
- collect (VarT tv) = return [PlainTV tv]
- collect (ConT _) = return []
- collect (TupleT _) = return []
- collect (UnboxedTupleT _) = return []
- collect ArrowT = return []
- collect ListT = return []
- collect (AppT t1 t2)
- = do { tvs1 <- collect t1
- ; tvs2 <- collect t2
- ; return $ tvs1 ++ tvs2
- }
- collect (SigT (VarT tv) ki) = return [KindedTV tv ki]
- collect (SigT ty _) = collect ty
- collect (LitT _) = return []
+ ; return (cxt', tc', mkHsBSig tys') }
-
-------------------------------------------------------------------
-- Partitioning declarations
-------------------------------------------------------------------
diff --cc compiler/hsSyn/HsDecls.lhs
index b54327a,0ebb1f6..d573be5
--- a/compiler/hsSyn/HsDecls.lhs
+++ b/compiler/hsSyn/HsDecls.lhs
@@@ -614,25 -683,20 +614,25 @@@ instance OutputableBndr nam
pprLHsBindsForUser methods sigs) ]
where
top_matter = ptext (sLit "class")
- <+> pp_decl_head (unLoc context) lclas tyvars Nothing
+ <+> pp_vanilla_decl_head lclas tyvars (unLoc context)
<+> pprFundeps (map unLoc fds)
-pp_decl_head :: OutputableBndr name
- => HsContext name
- -> Located name
+pp_vanilla_decl_head :: OutputableBndr name
+ => Located name
-> [LHsTyVarBndr name]
- -> Maybe [LHsType name]
+ -> HsContext name
+ -> SDoc
+pp_vanilla_decl_head thing tyvars context
- = hsep [pprHsContext context, ppr thing, interppSP tyvars]
++ = hsep [pprHsContext context, pprPrefixOcc (unLoc thing), interppSP tyvars]
+
+pp_fam_inst_head :: OutputableBndr name
+ => Located name
+ -> HsBndrSig [LHsType name]
+ -> HsContext name
-> SDoc
-pp_decl_head context thing tyvars Nothing -- no explicit type patterns
- = hsep [pprHsContext context, pprPrefixOcc (unLoc thing), interppSP tyvars]
-pp_decl_head context thing _ (Just typats) -- explicit type patterns
- = hsep [ pprHsContext context, pprPrefixOcc (unLoc thing)
- , hsep (map (pprParendHsType.unLoc) typats)]
+pp_fam_inst_head thing (HsBSig typats _) context -- explicit type patterns
- = hsep [ ptext (sLit "instancs"), pprHsContext context, ppr thing
++ = hsep [ ptext (sLit "instance"), pprHsContext context, pprPrefixOcc (unLoc thing)
+ , hsep (map (pprParendHsType.unLoc) typats)]
pp_condecls :: OutputableBndr name => [LConDecl name] -> SDoc
pp_condecls cs@(L _ ConDecl{ con_res = ResTyGADT _ } : _) -- In GADT syntax
diff --cc compiler/parser/RdrHsSyn.lhs
index bfea5ba,b6893cf..8c4ff3c
--- a/compiler/parser/RdrHsSyn.lhs
+++ b/compiler/parser/RdrHsSyn.lhs
@@@ -11,12 -11,10 +11,13 @@@ module RdrHsSyn
mkHsOpApp,
mkHsIntegral, mkHsFractional, mkHsIsString,
mkHsDo, mkHsSplice, mkTopSpliceDecl,
- mkClassDecl, mkTyData, mkTyFamily, mkTySynonym,
+ mkClassDecl,
+ mkTyData, mkFamInstData,
+ mkTySynonym, mkFamInstSynonym,
+ mkTyFamily,
splitCon, mkInlinePragma,
mkRecConstrOrUpdate, -- HsExp -> [HsFieldUpdate] -> P HsExp
+ mkTyLit,
cvBindGroup,
cvBindsAndSigs,
@@@ -132,11 -145,12 +141,12 @@@ extract_lty (L _ ty) ac
HsDocTy ty _ -> extract_lty ty acc
HsExplicitListTy _ tys -> extract_ltys tys acc
HsExplicitTupleTy _ tys -> extract_ltys tys acc
+ HsTyLit _ -> acc
HsWrapTy _ _ -> panic "extract_lty"
-extract_tv :: SrcSpan -> RdrName -> [Located RdrName] -> [Located RdrName]
-extract_tv loc tv acc | isRdrTyVar tv = L loc tv : acc
- | otherwise = acc
+extract_tv :: RdrName -> [RdrName] -> [RdrName]
+extract_tv tv acc | isRdrTyVar tv = tv : acc
+ | otherwise = acc
extractGenericPatTyVars :: LHsBinds RdrName -> [Located RdrName]
-- Get the type variables out of the type patterns in a bunch of
More information about the Cvs-ghc
mailing list