X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ghc%2Fcompiler%2FdeSugar%2FDsListComp.lhs;h=6bb41a92e4b54bcd7cfcdbd3c2babd43ca1a2885;hp=7eb62ffa386b8780d1e05c816ba2658f9417f589;hb=04feba252e40d16101b92948cd1e13c7bc1f3062;hpb=fe108ff1b0d4b52679ba6deddadf5d2fb3fa8f22 diff --git a/ghc/compiler/deSugar/DsListComp.lhs b/ghc/compiler/deSugar/DsListComp.lhs index 7eb62ff..6bb41a9 100644 --- a/ghc/compiler/deSugar/DsListComp.lhs +++ b/ghc/compiler/deSugar/DsListComp.lhs @@ -12,7 +12,7 @@ import {-# SOURCE #-} DsExpr ( dsLExpr, dsLocalBinds ) import BasicTypes ( Boxity(..) ) import HsSyn -import TcHsSyn ( hsPatType ) +import TcHsSyn ( hsPatType, mkVanillaTuplePat ) import CoreSyn import DsMonad -- the monadery used in the desugarer @@ -157,7 +157,7 @@ deListComp (ParStmt stmtss_w_bndrs : quals) body list bndrs_s = map snd stmtss_w_bndrs -- pat is the pattern ((x1,..,xn), (y1,..,ym)) in the example above - pat = noLoc (TuplePat pats Boxed) + pat = mkTuplePat pats pats = map mk_hs_tuple_pat bndrs_s -- Types of (x1,..,xn), (y1,..,yn) etc @@ -263,8 +263,7 @@ mk_hs_tuple_expr [id] = nlHsVar id mk_hs_tuple_expr ids = noLoc $ ExplicitTuple [ nlHsVar i | i <- ids ] Boxed mk_hs_tuple_pat :: [Id] -> LPat Id -mk_hs_tuple_pat [b] = nlVarPat b -mk_hs_tuple_pat bs = noLoc $ TuplePat (map nlVarPat bs) Boxed +mk_hs_tuple_pat bs = mkTuplePat (map nlVarPat bs) \end{code} @@ -505,9 +504,9 @@ parrElemType e = -- Smart constructor for source tuple patterns -- -mkTuplePat :: [LPat id] -> LPat id +mkTuplePat :: [LPat Id] -> LPat Id mkTuplePat [lpat] = lpat -mkTuplePat lpats = noLoc $ TuplePat lpats Boxed +mkTuplePat lpats = noLoc $ mkVanillaTuplePat lpats Boxed -- Smart constructor for source tuple expressions --