X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Frename%2FRnPat.lhs;h=bc174954787e022915dd776b2bb795f18bd47101;hb=0a5613f40b0e32cf59966e6b56b807cdbe80aa7b;hp=c06aa38e06ce862bbf5ebf45def618a8060ff3dc;hpb=85f969a6585c06168645114d9524e7169dbc6e32;p=ghc-hetmet.git diff --git a/compiler/rename/RnPat.lhs b/compiler/rename/RnPat.lhs index c06aa38..bc17495 100644 --- a/compiler/rename/RnPat.lhs +++ b/compiler/rename/RnPat.lhs @@ -11,7 +11,7 @@ free variables. \begin{code} module RnPat (-- main entry points - rnPats, rnBindPat, + rnPat, rnPats, rnBindPat, NameMaker, applyNameMaker, -- a utility for making names: localRecNameMaker, topRecNameMaker, -- sometimes we want to make local names, @@ -22,9 +22,6 @@ module RnPat (-- main entry points -- Literals rnLit, rnOverLit, - -- Quasiquotation - rnQuasiQuote, - -- Pattern Error messages that are also used elsewhere checkTupSize, patSigErr ) where @@ -233,6 +230,12 @@ rnPats ctxt pats thing_inside where doc_pat = ptext (sLit "In") <+> pprMatchContext ctxt +rnPat :: HsMatchContext Name -- for error messages + -> LPat RdrName + -> (LPat Name -> RnM (a, FreeVars)) + -> RnM (a, FreeVars) +rnPat ctxt pat thing_inside + = rnPats ctxt [pat] (\[pat'] -> thing_inside pat') applyNameMaker :: NameMaker -> Located RdrName -> RnM Name applyNameMaker mk rdr = do { (n, _fvs) <- runCps (newName mk rdr); return n } @@ -363,8 +366,7 @@ rnPatAndThen _ p@(QuasiQuotePat {}) = pprPanic "Can't do QuasiQuotePat without GHCi" (ppr p) #else rnPatAndThen mk (QuasiQuotePat qq) - = do { qq' <- liftCpsFV $ rnQuasiQuote qq - ; pat <- liftCps $ runQuasiQuotePat qq' + = do { pat <- liftCps $ runQuasiQuotePat qq ; L _ pat' <- rnLPatAndThen mk pat ; return pat' } #endif /* GHCI */ @@ -565,27 +567,6 @@ rnOverLit lit@(OverLit {ol_val=val}) %************************************************************************ %* * -\subsubsection{Quasiquotation} -%* * -%************************************************************************ - -See Note [Quasi-quote overview] in TcSplice. - -\begin{code} -rnQuasiQuote :: HsQuasiQuote RdrName -> RnM (HsQuasiQuote Name, FreeVars) -rnQuasiQuote (HsQuasiQuote n quoter quoteSpan quote) - = do { loc <- getSrcSpanM - ; n' <- newLocalBndrRn (L loc n) - ; quoter' <- lookupOccRn quoter - -- If 'quoter' is not in scope, proceed no further - -- Otherwise lookupOcc adds an error messsage and returns - -- an "unubound name", which makes the subsequent attempt to - -- run the quote fail - ; return (HsQuasiQuote n' quoter' quoteSpan quote, unitFV quoter') } -\end{code} - -%************************************************************************ -%* * \subsubsection{Errors} %* * %************************************************************************