X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FhsSyn%2FHsPat.lhs;h=ddd6ec269485aaf9eb7058a63308c722e5e50847;hp=d4b0e1b37d8ce5d343a4c29adc4e52f2f3a33aa5;hb=bfe55fb767d566b5105c5584f698af1dd4a57346;hpb=a07a463449d54855f19c160ed0f0a3853663db5f diff --git a/compiler/hsSyn/HsPat.lhs b/compiler/hsSyn/HsPat.lhs index d4b0e1b..ddd6ec2 100644 --- a/compiler/hsSyn/HsPat.lhs +++ b/compiler/hsSyn/HsPat.lhs @@ -19,7 +19,7 @@ module HsPat ( HsConPatDetails, hsConPatArgs, HsRecFields(..), HsRecField(..), hsRecFields, - mkPrefixConPat, mkCharLitPat, mkNilPat, mkCoPat, + mkPrefixConPat, mkCharLitPat, mkNilPat, mkCoPat, mkCoPatCoI, isBangHsBind, patsAreAllCons, isConPat, isSigPat, isWildPat, @@ -37,6 +37,7 @@ import HsLit import HsTypes import BasicTypes -- others: +import Coercion import PprCore ( {- instance OutputableBndr TyVar -} ) import TysWiredIn import Var @@ -292,10 +293,14 @@ mkNilPat ty = mkPrefixConPat nilDataCon [] ty mkCharLitPat :: Char -> OutPat id mkCharLitPat c = mkPrefixConPat charDataCon [noLoc $ LitPat (HsCharPrim c)] charTy -mkCoPat :: HsWrapper -> OutPat id -> Type -> OutPat id -mkCoPat co lpat@(L loc pat) ty - | isIdHsWrapper co = lpat - | otherwise = L loc (CoPat co pat ty) +mkCoPat :: HsWrapper -> Pat id -> Type -> Pat id +mkCoPat co pat ty + | isIdHsWrapper co = pat + | otherwise = CoPat co pat ty + +mkCoPatCoI :: CoercionI -> Pat id -> Type -> Pat id +mkCoPatCoI IdCo pat ty = pat +mkCoPatCoI (ACo co) pat ty = mkCoPat (WpCo co) pat ty \end{code}