X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Frename%2FRnExpr.lhs;h=bfd644f0fba5c5004d9c2970734a6bb854028b1a;hb=8ab093423360990fc108d86098fc6bfb3b555269;hp=1c80bc0101bb4c28af993991731ced3f96ece765;hpb=3a99fa889bdff0c86df20cb18c71d30e30a79b43;p=ghc-hetmet.git diff --git a/compiler/rename/RnExpr.lhs b/compiler/rename/RnExpr.lhs index 1c80bc0..bfd644f 100644 --- a/compiler/rename/RnExpr.lhs +++ b/compiler/rename/RnExpr.lhs @@ -109,6 +109,16 @@ rnExpr (HsIPVar v) = newIPNameRn v `thenM` \ name -> returnM (HsIPVar name, emptyFVs) +rnExpr (HsLit lit@(HsString s)) + = do { + opt_OverloadedStrings <- doptM Opt_OverloadedStrings + ; if opt_OverloadedStrings then + rnExpr (HsOverLit (mkHsIsString s)) + else -- Same as below + rnLit lit `thenM_` + returnM (HsLit lit, emptyFVs) + } + rnExpr (HsLit lit) = rnLit lit `thenM_` returnM (HsLit lit, emptyFVs) @@ -179,6 +189,9 @@ rnExpr (HsCoreAnn ann expr) rnExpr (HsSCC lbl expr) = rnLExpr expr `thenM` \ (expr', fvs_expr) -> returnM (HsSCC lbl expr', fvs_expr) +rnExpr (HsTickPragma info expr) + = rnLExpr expr `thenM` \ (expr', fvs_expr) -> + returnM (HsTickPragma info expr', fvs_expr) rnExpr (HsLam matches) = rnMatchGroup LambdaExpr matches `thenM` \ (matches', fvMatch) -> @@ -215,16 +228,16 @@ rnExpr e@(ExplicitTuple exps boxity) tup_size = length exps tycon_name = tupleTyCon_name boxity tup_size -rnExpr (RecordCon con_id _ rbinds) +rnExpr (RecordCon con_id _ (HsRecordBinds rbinds)) = lookupLocatedOccRn con_id `thenM` \ conname -> rnRbinds "construction" rbinds `thenM` \ (rbinds', fvRbinds) -> - returnM (RecordCon conname noPostTcExpr rbinds', + returnM (RecordCon conname noPostTcExpr (HsRecordBinds rbinds'), fvRbinds `addOneFV` unLoc conname) -rnExpr (RecordUpd expr rbinds _ _) +rnExpr (RecordUpd expr (HsRecordBinds rbinds) _ _) = rnLExpr expr `thenM` \ (expr', fvExpr) -> rnRbinds "update" rbinds `thenM` \ (rbinds', fvRbinds) -> - returnM (RecordUpd expr' rbinds' placeHolderType placeHolderType, + returnM (RecordUpd expr' (HsRecordBinds rbinds') placeHolderType placeHolderType, fvExpr `plusFV` fvRbinds) rnExpr (ExprWithTySig expr pty)