packages feed

hsx2hs 0.12.0 → 0.13.0

raw patch · 2 files changed

+21/−13 lines, 2 filesnew-uploaderPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

hsx2hs.cabal view
@@ -1,5 +1,5 @@ Name:                   hsx2hs-Version:                0.12.0+Version:                0.13.0 License:                BSD3 License-File:           LICENSE Author:                 Niklas Broberg, Joel Bjornson@@ -27,15 +27,15 @@                         Achieving that is not as simple as it may seem, but the XMLGenerator module provides all the                         necessary machinery.                         -Homepage:               http://patch-tag.com/r/nibro/hsx+Homepage:               http://hub.darcs.net/nibro/hsx2hs -Tested-With:            GHC==6.8.3, GHC==6.10.1+Tested-With:            GHC==7.6.3 Cabal-Version: 		>= 1.6 Build-Type:             Simple  source-repository head     type:     darcs-    location: http://patch-tag.com/r/nibro/hsx+    location: http://hub.darcs.net/nibro/hsx2hs   Flag base4
src/Language/Haskell/HSX/Transform.hs view
@@ -267,7 +267,8 @@      -- PCDATA should be lifted as a string into the XML datatype.     XPcdata pcdata    -> do setXmlTransformed-                            return $ ExpTypeSig noLoc (strE pcdata) (TyCon (UnQual (Ident "Text")))+                            return $ metaFromStringLit $ strE pcdata+--                            return $ ExpTypeSig noLoc (strE pcdata) (TyCon (UnQual (Ident "Text")))     -- Escaped expressions should be treated as just expressions.     XExpTag e     -> do setXmlTransformed                         e' <- transformExpM e@@ -410,7 +411,8 @@ mkAttr (XAttr name e) =     paren (metaMkName name `metaAssign` (textTypeSig e))     where-      textTypeSig e@(Lit (String _)) = ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))+      textTypeSig e@(Lit (String _)) = metaFromStringLit e+--      textTypeSig e@(Lit (String _)) = ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))       textTypeSig e                  = e  -- | Transform pattern bind declarations inside a @let@-expression by transforming@@ -1899,7 +1901,7 @@ metaGenElement :: XName -> [Exp] -> Maybe Exp -> [Exp] -> Exp metaGenElement name ats mat cs =     let (d,n) = xNameParts name-        ne    = tuple [metaMkMaybe $ fmap strE d, strE n]+        ne    = tuple [metaMkMaybe $ fmap (metaFromStringLit . strE) d, metaFromStringLit $ strE n]         m = maybe id (\x y -> paren $ y `metaAppend` (metaMap [argAsAttr, x])) mat         attrs = m $ listE $ map metaAsAttr ats      in metaFunction "genElement" [ne, attrs, listE cs]@@ -1908,14 +1910,14 @@ metaGenEElement :: XName -> [Exp] -> Maybe Exp -> Exp metaGenEElement name ats mat =     let (d,n) = xNameParts name-        ne    = tuple [metaMkMaybe $ fmap strE d, strE n]+        ne    = tuple [metaMkMaybe $ fmap (metaFromStringLit . strE) d, metaFromStringLit $ strE n]         m = maybe id (\x y -> paren $ y `metaAppend` (metaMap [argAsAttr, x])) mat         attrs = m $ listE $ map metaAsAttr ats      in metaFunction "genEElement" [ne, attrs]  -- | Create an attribute by applying the overloaded @asAttr@ metaAsAttr :: Exp -> Exp-metaAsAttr e@(Lit (String _)) = metaFunction "asAttr" [ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))]+metaAsAttr e@(Lit (String _)) = metaFunction "asAttr" [metaFromStringLit e] -- [ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))] metaAsAttr e = metaFunction "asAttr" [e]  argAsAttr :: Exp@@ -1931,6 +1933,9 @@ metaAsChild :: Exp -> Exp metaAsChild e = metaFunction "asChild" [paren e] +-- | convert a 'String' literal to lazy 'Text' by calling a function named 'fromStringLit'+metaFromStringLit :: Exp -> Exp+metaFromStringLit e = metaFunction "fromStringLit" [e]  -- TODO: We need to fix the stuff below so pattern matching on XML could also be overloaded. -- Right now it only works on HSP XML, or anything that is syntactically identical to it.@@ -1955,8 +1960,11 @@  metaMkName :: XName -> Exp metaMkName n = case n of-    XName s      -> textTypeSig (strE s)-    XDomName d s -> tuple [textTypeSig $ strE d, textTypeSig $ strE s]-    where-      textTypeSig e = ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))+    XName s      -> metaFromStringLit (strE s)+    XDomName d s -> tuple [metaFromStringLit $ strE d, metaFromStringLit $ strE s]++--    XName s      -> textTypeSig (strE s)+--    XDomName d s -> tuple [textTypeSig $ strE d, textTypeSig $ strE s]+--    where+--      textTypeSig e = ExpTypeSig noLoc e (TyCon (UnQual (Ident "Text")))