From 1967fd3474913f3c0dc72b070019a830223c7fab Mon Sep 17 00:00:00 2001 From: Twan van Laarhoven Date: Sat, 26 Jan 2008 19:19:39 +0000 Subject: [PATCH] Fixed warnings in basicTypes/Var --- compiler/basicTypes/Var.lhs | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/compiler/basicTypes/Var.lhs b/compiler/basicTypes/Var.lhs index 5b3097d..38ab8b8 100644 --- a/compiler/basicTypes/Var.lhs +++ b/compiler/basicTypes/Var.lhs @@ -5,13 +5,6 @@ \section{@Vars@: Variables} \begin{code} -{-# OPTIONS -w #-} --- The above warning supression flag is a temporary kludge. --- While working on this module you are encouraged to remove it and fix --- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings --- for details - module Var ( Var, varName, varUnique, varType, @@ -185,10 +178,16 @@ setVarName var new_name \begin{code} type TyVar = Var +tyVarName :: TyVar -> Name tyVarName = varName + +tyVarKind :: TyVar -> Kind tyVarKind = varType +setTyVarUnique :: TyVar -> Unique -> TyVar setTyVarUnique = setVarUnique + +setTyVarName :: TyVar -> Name -> TyVar setTyVarName = setVarName setTyVarKind :: TyVar -> Kind -> TyVar @@ -224,9 +223,14 @@ mkTcTyVar name kind details \begin{code} type CoVar = Var -- A coercion variable is simply a type -- variable of kind (ty1 :=: ty2) + +coVarName :: CoVar -> Name coVarName = varName +setCoVarUnique :: CoVar -> Unique -> CoVar setCoVarUnique = setVarUnique + +setCoVarName :: CoVar -> Name -> CoVar setCoVarName = setVarName mkCoVar :: Name -> Kind -> CoVar @@ -265,6 +269,10 @@ type DictId = Id \end{code} \begin{code} +idName :: Id -> Name +idUnique :: Id -> Unique +idType :: Id -> Kind + idName = varName idUnique = varUnique idType = varType @@ -355,29 +363,30 @@ isTyVar, isTcTyVar :: Var -> Bool isId, isLocalVar, isLocalId :: Var -> Bool isGlobalId, isExportedId :: Var -> Bool mustHaveLocalBinding :: Var -> Bool +isCoVar :: Var -> Bool isTyVar (TyVar {}) = True isTyVar (TcTyVar {}) = True -isTyVar other = False +isTyVar _ = False isTcTyVar (TcTyVar {}) = True -isTcTyVar other = False +isTcTyVar _ = False isId (LocalId {}) = True isId (GlobalId {}) = True -isId other = False +isId _ = False isLocalId (LocalId {}) = True -isLocalId other = False +isLocalId _ = False isCoVar (v@(TyVar {})) = isCoercionVar v -isCoVar other = False +isCoVar _ = False -- isLocalVar returns True for type variables as well as local Ids -- These are the variables that we need to pay attention to when finding free -- variables, or doing dependency analysis. isLocalVar (GlobalId {}) = False -isLocalVar other = True +isLocalVar _ = True -- mustHaveLocalBinding returns True of Ids and TyVars -- that must have a binding in this module. The converse @@ -387,21 +396,21 @@ isLocalVar other = True mustHaveLocalBinding var = isLocalVar var isGlobalId (GlobalId {}) = True -isGlobalId other = False +isGlobalId _ = False -- isExportedId means "don't throw this away" isExportedId (GlobalId {}) = True isExportedId (LocalId {lclDetails = details}) = case details of Exported -> True - other -> False -isExportedId other = False + _ -> False +isExportedId _ = False \end{code} \begin{code} globalIdDetails :: Var -> GlobalIdDetails -- Works OK on local Ids too, returning notGlobalId globalIdDetails (GlobalId {gblDetails = details}) = details -globalIdDetails other = notGlobalId +globalIdDetails _ = notGlobalId \end{code} -- 1.7.10.4