import NameSet
import Literal ( inIntRange, inCharRange )
-import BasicTypes ( compareFixity, funTyFixity, negateFixity, compareFixity,
+import BasicTypes ( compareFixity, funTyFixity, negateFixity,
Fixity(..), FixityDirection(..) )
import ListSetOps ( removeDups )
import Outputable
-- 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
= 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}
= 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 ->
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