X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Frename%2FRnTypes.lhs;h=d7d435ce974d97c2d0df0ad116ef0939b78539c6;hb=5d3051c66796dcf884b052f9e4afc3ed19b9f514;hp=31279ff1ec32f494a8747775d0688040b81d7f0a;hpb=a7ecdf96844404b7bc8273d4ff6d85759278427c;p=ghc-hetmet.git diff --git a/ghc/compiler/rename/RnTypes.lhs b/ghc/compiler/rename/RnTypes.lhs index 31279ff..d7d435c 100644 --- a/ghc/compiler/rename/RnTypes.lhs +++ b/ghc/compiler/rename/RnTypes.lhs @@ -47,7 +47,7 @@ import SrcLoc ( SrcSpan, Located(..), unLoc, noLoc, combineLocs ) import NameSet import Literal ( inIntRange, inCharRange ) -import BasicTypes ( compareFixity, funTyFixity, negateFixity, compareFixity, +import BasicTypes ( compareFixity, funTyFixity, negateFixity, Fixity(..), FixityDirection(..) ) import ListSetOps ( removeDups ) import Outputable @@ -99,7 +99,7 @@ rnHsType doc (HsForAllTy Implicit _ ctxt ty) -- class signatures: -- class C a where { op :: a -> a } forall_tyvars = filter (not . (`elemLocalRdrEnv` name_env) . unLoc) mentioned - tyvar_bndrs = [ L loc (UserTyVar v) | (L loc v) <- forall_tyvars ] + tyvar_bndrs = userHsTyVarBndrs forall_tyvars in rnForAll doc Implicit tyvar_bndrs ctxt ty @@ -185,6 +185,10 @@ rnHsType doc (HsPredTy pred) = rnPred doc pred `thenM` \ pred' -> returnM (HsPredTy pred') +rnHsType doc (HsSpliceTy _) + = do { addErr (ptext SLIT("Type splices are not yet implemented")) + ; failM } + rnLHsTypes doc tys = mappM (rnLHsType doc) tys \end{code} @@ -594,6 +598,10 @@ rnPat (LazyPat pat) = rnLPat pat `thenM` \ (pat', fvs) -> returnM (LazyPat pat', fvs) +rnPat (BangPat pat) + = rnLPat pat `thenM` \ (pat', fvs) -> + returnM (BangPat pat', fvs) + rnPat (AsPat name pat) = rnLPat pat `thenM` \ (pat', fvs) -> lookupLocatedBndrRn name `thenM` \ vname -> @@ -617,10 +625,11 @@ rnPat (PArrPat pats _) where implicit_fvs = mkFVs [lengthPName, indexPName] -rnPat (TuplePat pats boxed) +rnPat (TuplePat pats boxed _) = checkTupSize tup_size `thenM_` rnLPats pats `thenM` \ (patslist, fvs) -> - returnM (TuplePat patslist boxed, fvs `addOneFV` tycon_name) + returnM (TuplePat patslist boxed placeHolderType, + fvs `addOneFV` tycon_name) where tup_size = length pats tycon_name = tupleTyCon_name boxed tup_size