\section[RnHsSyn]{Specialisations of the @HsSyn@ syntax for the renamer}
\begin{code}
-module RnHsSyn where
+module RnHsSyn(
+ -- Names
+ charTyCon_name, listTyCon_name, parrTyCon_name, tupleTyCon_name,
+ extractHsTyVars, extractHsTyNames, extractHsTyNames_s,
+ extractFunDepNames, extractHsCtxtTyNames, extractHsPredTyNames,
+
+ -- Free variables
+ hsSigsFVs, hsSigFVs, conDeclFVs, bangTyFVs,
+
+ maybeGenericMatch
+ ) where
#include "HsVersions.h"
get (HsPredTy p) = extractHsPredTyNames p
get (HsOpTy ty1 op ty2) = getl ty1 `unionNameSets` getl ty2 `unionNameSets` unitNameSet (unLoc op)
get (HsParTy ty) = getl ty
+ get (HsBangTy _ ty) = getl ty
get (HsNumTy n) = emptyNameSet
get (HsTyVar tv) = unitNameSet tv
get (HsSpliceTy _) = emptyNameSet -- Type splices mention no type variables
hsSigFVs other = emptyFVs
----------------
-conDeclFVs (L _ (ConDecl _ tyvars context details))
+-- XXX - autrijus - handle return type for GADT
+conDeclFVs (L _ (ConDecl _ _ tyvars context details _))
= delFVs (map hsLTyVarName tyvars) $
extractHsCtxtTyNames context `plusFV`
conDetailsFVs details
-conDetailsFVs (PrefixCon btys) = plusFVs (map bangTyFVs btys)
+{-
+-- gaw 2004
+conDeclFVs (L _ (GadtDecl _ ty))
+ = extractHsTyNames ty
+-}
+
+conDetailsFVs (PrefixCon btys) = plusFVs (map bangTyFVs btys)
conDetailsFVs (InfixCon bty1 bty2) = bangTyFVs bty1 `plusFV` bangTyFVs bty2
conDetailsFVs (RecCon flds) = plusFVs [bangTyFVs bty | (_, bty) <- flds]
-bangTyFVs bty = extractHsTyNames (getBangType (unLoc bty))
+bangTyFVs bty = extractHsTyNames (getBangType bty)
\end{code}