X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fparser%2FRdrHsSyn.lhs;h=187d64d8802f09fb602bf004846fbd2f097140a6;hb=6c06fdc7ad20682f0f52b5a78e5e3487a2ed047b;hp=bccf27f4228ab0c135cccf3b44c4a1e12a19ece8;hpb=abb7803606acd590db525eb93351ea9899d93f72;p=ghc-hetmet.git diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs index bccf27f..187d64d 100644 --- a/compiler/parser/RdrHsSyn.lhs +++ b/compiler/parser/RdrHsSyn.lhs @@ -49,7 +49,8 @@ module RdrHsSyn ( checkMDo, -- [Stmt] -> P [Stmt] checkValDef, -- (SrcLoc, HsExp, HsRhs, [HsDecl]) -> P HsDecl checkValSig, -- (SrcLoc, HsExp, HsRhs, [HsDecl]) -> P HsDecl - parseError, -- String -> Pa + parseError, + parseErrorSDoc, ) where import HsSyn -- Lots of it @@ -58,7 +59,9 @@ import TypeRep ( Kind ) import RdrName ( RdrName, isRdrTyVar, isRdrTc, mkUnqual, rdrNameOcc, isRdrDataCon, isUnqual, getRdrName, isQual, setRdrNameSpace, showRdrName ) -import BasicTypes ( maxPrecedence, Activation, InlineSpec(..), alwaysInlineSpec, neverInlineSpec ) +import BasicTypes ( maxPrecedence, Activation, RuleMatchInfo, + InlinePragma(..), InlineSpec(..), + alwaysInlineSpec, neverInlineSpec ) import Lexer ( P, failSpanMsgP, extension, standaloneDerivingEnabled, bangPatEnabled ) import TysWiredIn ( unitTyCon ) import ForeignCall ( CCallConv, Safety, CCallTarget(..), CExportSpec(..), @@ -923,11 +926,13 @@ mk_rec_fields :: [HsRecField id arg] -> Bool -> HsRecFields id arg mk_rec_fields fs False = HsRecFields { rec_flds = fs, rec_dotdot = Nothing } mk_rec_fields fs True = HsRecFields { rec_flds = fs, rec_dotdot = Just (length fs) } -mkInlineSpec :: Maybe Activation -> Bool -> InlineSpec +mkInlineSpec :: Maybe Activation -> RuleMatchInfo -> Bool -> InlineSpec -- The Maybe is becuase the user can omit the activation spec (and usually does) -mkInlineSpec Nothing True = alwaysInlineSpec -- INLINE -mkInlineSpec Nothing False = neverInlineSpec -- NOINLINE -mkInlineSpec (Just act) inl = Inline act inl +mkInlineSpec Nothing match_info True = alwaysInlineSpec match_info + -- INLINE +mkInlineSpec Nothing match_info False = neverInlineSpec match_info + -- NOINLINE +mkInlineSpec (Just act) match_info inl = Inline (InlinePragma act match_info) inl -----------------------------------------------------------------------------