Add is_wild function to check for wild binders.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 18 Jun 2009 08:58:54 +0000 (10:58 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 18 Jun 2009 08:58:54 +0000 (10:58 +0200)
CoreTools.hs

index 3d3828b45b8c150d4c552759e6202a590a21c7fa..63bca94c23225ef84e94e8ee9e3755dd976b3a3f 100644 (file)
@@ -11,11 +11,15 @@ import qualified HsExpr
 import qualified HsTypes
 import qualified HsBinds
 import qualified RdrName
+import qualified Name
 import qualified OccName
 import qualified TysWiredIn
 import qualified Bag
 import qualified DynFlags
 import qualified SrcLoc
+import qualified CoreSyn
+import qualified Var
+import qualified Unique
 
 import GhcTools
 import HsTools
@@ -77,3 +81,11 @@ fsvec_len ty =
   where 
     (tycon, args) = Type.splitTyConApp ty
     [len, el_ty] = args
+
+-- Is this a wild binder?
+is_wild :: CoreSyn.CoreBndr -> Bool
+-- wild binders have a particular unique, that we copied from MkCore.lhs to
+-- here. However, this comparison didn't work, so we'll just check the
+-- occstring for now... TODO
+--(Var.varUnique bndr) == (Unique.mkBuiltinUnique 1)
+is_wild bndr = "wild" == (OccName.occNameString . Name.nameOccName . Var.varName) bndr