packages feed

fay 0.23.1.12 → 0.23.1.13

raw patch · 44 files changed

+90/−74 lines, 44 filesdep −groomdep ~basedep ~haskell-src-exts

Dependencies removed: groom

Dependency ranges changed: base, haskell-src-exts

Files

CHANGELOG.md view
@@ -2,6 +2,10 @@  See full history at: <https://github.com/faylang/fay/commits> +#### 0.23.1.13++* Add support for haskell-src-exts 1.18.1.+ #### 0.23.1.12  * Fix compilation on GHC < 7.8.
fay.cabal view
@@ -1,5 +1,5 @@ name:                fay-version:             0.23.1.12+version:             0.23.1.13 synopsis:            A compiler for Fay, a Haskell subset that compiles to JavaScript. description:         Fay is a proper subset of Haskell which is type-checked                      with GHC, and compiled to JavaScript. It is lazy, pure, has a Fay monad,@@ -135,30 +135,30 @@     Paths_fay    build-depends:-      base >= 4.5 && < 4.9+      base >= 4.5 && < 4.10     , base-compat >= 0.8 && < 0.10-    , aeson > 0.6 && < 0.11+    , aeson > 0.6 && < 1.1     , bytestring >= 0.9 && < 0.11     , containers >= 0.4 && < 0.6-    , data-default >= 0.2 && < 0.6+    , data-default >= 0.2 && < 0.8     , data-lens-light == 0.1.*     , directory >= 1.1 && < 1.3     , filepath >= 1.3 && < 1.5     , ghc-paths == 0.1.*-    , haskell-src-exts == 1.17.*+    , haskell-src-exts >= 1.18.1 && < 1.19     , language-ecmascript >= 0.15 && < 0.18     , mtl >= 2.1 && < 2.3     , mtl-compat >= 0.1 && < 0.3-    , process >= 1.1 && < 1.3+    , process >= 1.1 && < 1.5     , safe >= 0.2 && < 0.4     , sourcemap == 0.1.*     , split >= 0.1 && < 0.3     , spoon >= 0.1 && < 0.4     , syb >= 0.3 && < 0.7     , text >= 0.11 && < 1.3-    , time >= 1.4 && < 1.6-    , transformers >= 0.3 && < 0.4 || > 0.4.1 && < 0.5-    , transformers-compat >= 0.3 && < 0.5+    , time >= 1.4 && < 1.7+    , transformers >= 0.3 && < 0.4 || > 0.4.1 && < 0.7+    , transformers-compat >= 0.3 && < 0.6     , traverse-with-class >= 0.1 && < 0.3     , type-eq >= 0.1 && < 0.6     , uniplate >= 1.6.11 && < 1.7@@ -200,7 +200,6 @@       , directory       , fay       , filepath-      , groom == 0.1.*       , haskell-src-exts       , random >= 1.0 && < 1.2       , tasty >= 0.9 && < 0.12
src/Fay.hs view
@@ -36,8 +36,8 @@  import           Data.Aeson                             (encode) import qualified Data.ByteString.Lazy                   as L-import           Language.Haskell.Exts.Annotated        (prettyPrint)-import           Language.Haskell.Exts.Annotated.Syntax+import           Language.Haskell.Exts        (prettyPrint)+import           Language.Haskell.Exts.Syntax import           Language.Haskell.Exts.SrcLoc import           Paths_fay import           SourceMap                              (generate)
src/Fay/Compiler.hs view
@@ -46,7 +46,7 @@ import           Control.Monad.RWS               (gets, modify)  import qualified Data.Set                        as S-import           Language.Haskell.Exts.Annotated hiding (name)+import           Language.Haskell.Exts hiding (name) import           Language.Haskell.Names          (annotateModule)  --------------------------------------------------------------------------------
src/Fay/Compiler/Decl.hs view
@@ -23,7 +23,7 @@  import           Control.Monad.Except            (throwError) import           Control.Monad.RWS               (gets, modify)-import           Language.Haskell.Exts.Annotated hiding (binds, loc, name)+import           Language.Haskell.Exts hiding (binds, loc, name)  -- | Compile Haskell declaration. compileDecls :: Bool -> [S.Decl] -> Compile [JsStmt]
src/Fay/Compiler/Desugar.hs view
@@ -21,7 +21,7 @@ import           Control.Monad.Except            (throwError) import           Control.Monad.Reader            (asks) import qualified Data.Generics.Uniplate.Data     as U-import           Language.Haskell.Exts.Annotated hiding (binds, loc, name)+import           Language.Haskell.Exts hiding (binds, loc, name)  -- | Top level, desugar a whole module possibly returning errors desugar :: (Data l, Typeable l) => l -> Module l -> IO (Either CompileError (Module l))
src/Fay/Compiler/Desugar/Name.hs view
@@ -9,7 +9,7 @@ import           Fay.Compiler.Desugar.Types  import           Control.Monad.Reader            (asks, local)-import           Language.Haskell.Exts.Annotated (Name (..))+import           Language.Haskell.Exts (Name (..))  -- | Generate a temporary, SCOPED name for testing conditions and -- such. We don't have name tracking yet, so instead we use this.
src/Fay/Compiler/Exp.hs view
@@ -30,7 +30,7 @@ import           Control.Monad.Except            (throwError) import           Control.Monad.RWS               (asks, gets) import qualified Data.Char                       as Char-import           Language.Haskell.Exts.Annotated hiding (alt, binds, name, op)+import           Language.Haskell.Exts hiding (alt, binds, name, op) import           Language.Haskell.Names          (NameInfo (RecExpWildcard), Scoped (Scoped))  -- | Compile Haskell expression.
src/Fay/Compiler/FFI.hs view
@@ -18,20 +18,20 @@ import           Fay.Compiler.Prelude  import           Fay.Compiler.Misc-import           Fay.Compiler.Print                     (printJSString)+import           Fay.Compiler.Print           (printJSString) import           Fay.Compiler.QName-import           Fay.Exts.NoAnnotation                  (unAnn)-import qualified Fay.Exts.NoAnnotation                  as N-import qualified Fay.Exts.Scoped                        as S+import           Fay.Exts.NoAnnotation        (unAnn)+import qualified Fay.Exts.NoAnnotation        as N+import qualified Fay.Exts.Scoped              as S import           Fay.Types -import           Control.Monad.Except                   (throwError)-import           Control.Monad.Writer                   (tell)+import           Control.Monad.Except         (throwError)+import           Control.Monad.Writer         (tell) import           Data.Generics.Schemes-import           Language.ECMAScript3.Parser            as JS+import           Language.ECMAScript3.Parser  as JS import           Language.ECMAScript3.Syntax-import           Language.Haskell.Exts.Annotated        (SrcSpanInfo, prettyPrint)-import           Language.Haskell.Exts.Annotated.Syntax+import           Language.Haskell.Exts        (SrcSpanInfo, prettyPrint)+import           Language.Haskell.Exts.Syntax  -- | Compile an FFI expression (also used when compiling top level definitions). compileFFIExp :: SrcSpanInfo -> Maybe (Name a) -> String -> S.Type -> Compile JsExp@@ -56,7 +56,10 @@       TyParArray _ t    -> TyParArray () <$> rmNewtys t       TyEquals _ t1 t2  -> TyEquals () <$> rmNewtys t1 <*> rmNewtys t2       TySplice {}       -> return $ unAnn typ-      TyBang _ bt t     -> TyBang () (unAnn bt) <$> rmNewtys t+      TyBang _ bt unp t -> TyBang () (unAnn bt) (unAnn unp) <$> rmNewtys t+      TyWildCard _ _    -> error "TyWildCard not supported"+      TyQuasiQuote _ _ _ -> error "TyQuasiQuote not supported"+     compileFFI' :: N.Type -> Compile JsExp     compileFFI' sig = do       let name = fromMaybe "<exp>" nameopt
src/Fay/Compiler/GADT.hs view
@@ -4,7 +4,7 @@   (convertGADT   ) where -import           Language.Haskell.Exts.Annotated hiding (name)+import           Language.Haskell.Exts hiding (name)  -- | Convert a GADT to a normal data type. convertGADT :: GadtDecl a -> QualConDecl a
src/Fay/Compiler/Import.hs view
@@ -22,7 +22,7 @@  import           Control.Monad.Except            (throwError) import           Control.Monad.RWS               (ask, get, gets, lift, listen, modify)-import           Language.Haskell.Exts.Annotated hiding (name, var)+import           Language.Haskell.Exts hiding (name, var) import           System.Directory import           System.FilePath 
src/Fay/Compiler/InitialPass.hs view
@@ -22,7 +22,7 @@ import           Control.Monad.Except            (throwError) import           Control.Monad.RWS               (modify) import qualified Data.Map                        as M-import           Language.Haskell.Exts.Annotated hiding (name, var)+import           Language.Haskell.Exts hiding (name, var) import qualified Language.Haskell.Names          as HN (getInterfaces)  -- | Preprocess and collect all information needed during code generation.
src/Fay/Compiler/Misc.hs view
@@ -23,7 +23,7 @@ import           Control.Monad.Except            (runExceptT, throwError) import           Control.Monad.RWS               (asks, gets, modify, runRWST) import           Data.Version                    (parseVersion)-import           Language.Haskell.Exts.Annotated hiding (name)+import           Language.Haskell.Exts hiding (name) import           Language.Haskell.Names          (GName (GName), NameInfo (GlobalValue, LocalValue, ScopeError),                                                   OrigName, Scoped (Scoped), origGName, origName) import           System.IO
src/Fay/Compiler/Optimizer.hs view
@@ -16,7 +16,7 @@ import           Control.Monad.State             (State, modify, runState) import           Control.Monad.Writer            (runWriter, tell) import qualified Fay.Exts.NoAnnotation           as N-import           Language.Haskell.Exts.Annotated hiding (app, name, op)+import           Language.Haskell.Exts hiding (app, name, op)  -- | The arity of a function. Arity here is defined to be the number -- of arguments that can be directly uncurried from a curried lambda
src/Fay/Compiler/Parse.hs view
@@ -3,7 +3,7 @@   , defaultExtensions   ) where -import           Language.Haskell.Exts.Annotated hiding (name)+import           Language.Haskell.Exts hiding (name)  -- | Parse some Fay code. parseFay :: Parseable ast => FilePath -> String -> ParseResult ast
src/Fay/Compiler/Pattern.hs view
@@ -17,7 +17,7 @@  import           Control.Monad.Except            (throwError) import           Control.Monad.Reader            (ask)-import           Language.Haskell.Exts.Annotated hiding (name)+import           Language.Haskell.Exts hiding (name) import           Language.Haskell.Names          (NameInfo (RecPatWildcard), Scoped (Scoped))  -- | Compile the given pattern against the given expression.
src/Fay/Compiler/PrimOp.hs view
@@ -29,7 +29,7 @@  import           Data.Map                        (Map) import qualified Data.Map                        as M-import           Language.Haskell.Exts.Annotated hiding (binds, name)+import           Language.Haskell.Exts hiding (binds, name)  -- | Make an identifier from the built-in HJ module. fayBuiltin :: a -> String -> QName a
src/Fay/Compiler/Print.hs view
@@ -15,7 +15,7 @@  import           Data.Aeson.Encode import qualified Data.ByteString.Lazy.UTF8       as UTF8-import           Language.Haskell.Exts.Annotated hiding (alt, name, op, sym)+import           Language.Haskell.Exts hiding (alt, name, op, sym)  -------------------------------------------------------------------------------- -- Printing
src/Fay/Compiler/QName.hs view
@@ -2,7 +2,7 @@  module Fay.Compiler.QName where -import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Extract the module name from a qualified name. qModName :: QName a -> Maybe (ModuleName a)
src/Fay/Config.hs view
@@ -45,7 +45,7 @@  import           Data.Default import           Data.Maybe                      ()-import           Language.Haskell.Exts.Annotated (ModuleName (..))+import           Language.Haskell.Exts (ModuleName (..)) import           System.Environment  -- | Configuration of the compiler.
src/Fay/Exts.hs view
@@ -1,6 +1,6 @@ module Fay.Exts where -import qualified Language.Haskell.Exts.Annotated as A+import qualified Language.Haskell.Exts as A  type X = A.SrcSpanInfo 
src/Fay/Exts/NoAnnotation.hs view
@@ -6,7 +6,7 @@  import           Data.List.Split                 (splitOn) import           Data.String-import qualified Language.Haskell.Exts.Annotated as A+import qualified Language.Haskell.Exts as A  type Alt = A.Alt () type BangType = A.BangType ()
src/Fay/Exts/Scoped.hs view
@@ -2,7 +2,7 @@  import qualified Fay.Exts                        as F -import qualified Language.Haskell.Exts.Annotated as A+import qualified Language.Haskell.Exts as A import qualified Language.Haskell.Names          as HN (Scoped (Scoped), NameInfo (None))  
src/Fay/Types/CompileError.hs view
@@ -4,7 +4,7 @@ import qualified Fay.Exts.NoAnnotation           as N import qualified Fay.Exts.Scoped                 as S -import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Error type. data CompileError
src/Fay/Types/Js.hs view
@@ -11,7 +11,7 @@ import           Fay.Types.ModulePath  import           Data.String-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Statement type. data JsStmt
src/Fay/Types/ModulePath.hs view
@@ -10,7 +10,7 @@  import           Data.List import           Data.List.Split-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | The name of a module split into a list for code generation. newtype ModulePath = ModulePath { unModulePath :: [String] }
src/Fay/Types/Printer.hs view
@@ -19,7 +19,7 @@ import Control.Monad.RWS import Data.List                       (elemIndex) import Data.String-import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import SourceMap.Types  -- | Global options of the printer
src/haskell-names/Language/Haskell/Names/Annotated.hs view
@@ -27,7 +27,7 @@  import           Data.Lens.Light import           Data.Proxy-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts import           Type.Eq  annotate
src/haskell-names/Language/Haskell/Names/Exports.hs view
@@ -19,7 +19,7 @@ import           Control.Monad.Writer                     (WriterT (WriterT), runWriterT) import qualified Data.Map                                 as Map import qualified Data.Set                                 as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  processExports   :: (MonadModule m, ModuleInfo m ~ Symbols, Data l, Eq l)@@ -70,8 +70,7 @@             (EAbs (Scoped (Export s) l) (noScope ns)               (Scoped (GlobalType i) <$> qn), s)         Global.Special {} -> error "Global.Special in export list?"-    EAbs _ NoNamespace{} _ -> error "resolveExportSpec: 'type' namespace is not supported yet" -- FIXME-    EThingAll l qn -> return $+    EThingWith l (EWildcard wcl wcn) qn [] -> return $       case Global.lookupType qn tbl of         Global.Error err ->           (scopeError err exp, mempty)@@ -84,11 +83,15 @@               , n' == st_origName i ]             s = mkTy i <> subs           in-            ( EThingAll (Scoped (Export s) l) (Scoped (GlobalType i) <$> qn)+            ( EThingWith (Scoped (Export s) l)+                         (EWildcard (Scoped (Export s) wcl) wcn)+                         (Scoped (GlobalType i) <$> qn)+                         []             , s             )         Global.Special {} -> error "Global.Special in export list?"-    EThingWith l qn cns -> return $+    EThingWith l (EWildcard _ _) _cns -> error "Name resolution: CNames are not supported in wildcard exports"+    EThingWith l (NoWildcard wcl) qn cns -> return $       case Global.lookupType qn tbl of         Global.Error err ->           (scopeError err exp, mempty)@@ -102,7 +105,10 @@                 cns             s = mkTy i <> subs           in-            ( EThingWith (Scoped (Export s) l) (Scoped (GlobalType i) <$> qn) cns'+            ( EThingWith (Scoped (Export s) l)+                         (NoWildcard (Scoped (Export s) wcl))+                         (Scoped (GlobalType i) <$> qn)+                         cns'             , s             )         Global.Special {} -> error "Global.Special in export list?"
src/haskell-names/Language/Haskell/Names/GetBound.hs view
@@ -15,7 +15,7 @@ import           Language.Haskell.Names.SyntaxUtils  import           Data.Generics.Uniplate.Data-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts   -- | Get bound value identifiers.
src/haskell-names/Language/Haskell/Names/GlobalSymbolTable.hs view
@@ -20,7 +20,7 @@ import           Data.Lens.Light import qualified Data.Map                           as Map import qualified Data.Set                           as Set-import           Language.Haskell.Exts.Annotated    as HSE+import           Language.Haskell.Exts    as HSE  -- | Global symbol table — contains global names data Table =
src/haskell-names/Language/Haskell/Names/Imports.hs view
@@ -18,7 +18,7 @@ import           Data.Lens.Light import qualified Data.Map                                 as Map import qualified Data.Set                                 as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  instance ModName (ModuleName l) where   modToString (ModuleName _ s) = s
src/haskell-names/Language/Haskell/Names/LocalSymbolTable.hs view
@@ -13,7 +13,7 @@ import           Language.Haskell.Names.Types  import qualified Data.Map                           as Map-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Local symbol table — contains locally bound names newtype Table = Table (Map.Map NameS SrcLoc)
src/haskell-names/Language/Haskell/Names/ModuleSymbols.hs view
@@ -7,7 +7,7 @@   )   where -import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts import           Language.Haskell.Names.GetBound import qualified Language.Haskell.Names.GlobalSymbolTable as Global import           Language.Haskell.Names.ScopeUtils@@ -74,7 +74,7 @@       let tn = hname dh       in  [ Right (SymType        { st_origName = tn, st_fixity = Nothing })] -    TypeFamDecl _ dh _ ->+    TypeFamDecl _loc dh _mrs _mk ->       let tn = hname dh       in  [ Right (SymTypeFam     { st_origName = tn, st_fixity = Nothing })] @@ -121,7 +121,7 @@         cdecls = fromMaybe [] mds       in           Right (SymClass   { st_origName = cq,       st_fixity = Nothing }) :-        [ Right (SymTypeFam { st_origName = hname dh, st_fixity = Nothing }) | ClsTyFam   _   dh _ <- cdecls ] +++        [ Right (SymTypeFam { st_origName = hname dh, st_fixity = Nothing }) | ClsTyFam   _   dh _ _ <- cdecls ] ++         [ Right (SymDataFam { st_origName = hname dh, st_fixity = Nothing }) | ClsDataFam _ _ dh _ <- cdecls ] ++         [ Left  (SymMethod  { sv_origName = qname mn, sv_fixity = Nothing, sv_className = cq }) | mn <- ms ] @@ -139,6 +139,7 @@   where     ModuleName _ smdl = mdl     qname = GName smdl . nameToString+    hname :: DeclHead l -> GName     hname = qname . getDeclHeadName     dataOrNewCon dataOrNew = case dataOrNew of DataType {} -> SymData; NewType {} -> SymNewType 
src/haskell-names/Language/Haskell/Names/Open/Base.hs view
@@ -1,7 +1,7 @@ -- | This module provides a more flexible way to process Haskell code — -- using an open-recursive traversal. ----- You can look at "Language.Haskell.Exts.Annotated" source as an example+-- You can look at "Language.Haskell.Exts" source as an example -- of how to use this module. {-# OPTIONS -fno-warn-name-shadowing #-} {-# LANGUAGE DataKinds             #-}@@ -49,7 +49,7 @@ import           Data.Generics.Traversable import           Data.Lens.Light import           GHC.Exts                                 (Constraint)-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Describes how we should treat names in the current context data NameContext
src/haskell-names/Language/Haskell/Names/Open/Derived.hs view
@@ -7,7 +7,7 @@ module Language.Haskell.Names.Open.Derived where  import           Data.Generics.Traversable.TH-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  deriveGTraversable ''ModuleName deriveGTraversable ''SpecialCon@@ -82,3 +82,6 @@ deriveGTraversable ''Namespace deriveGTraversable ''Role deriveGTraversable ''PatternSynDirection+deriveGTraversable ''Unpackedness+deriveGTraversable ''ResultSig+deriveGTraversable ''InjectivityInfo
src/haskell-names/Language/Haskell/Names/Open/Instances.hs view
@@ -22,7 +22,7 @@  import           Data.Lens.Light import qualified Data.Traversable                       as T-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  c :: Applicative w => c -> w c c = pure
src/haskell-names/Language/Haskell/Names/RecordWildcards.hs view
@@ -20,7 +20,7 @@ import qualified Data.Map                                 as Map import           Data.Maybe import qualified Data.Set                                 as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  -- | Information about the names being introduced by a record wildcard --
src/haskell-names/Language/Haskell/Names/Recursive.hs view
@@ -24,7 +24,7 @@ import           Data.Maybe import           Data.Monoid import qualified Data.Set                             as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts   -- | Take a set of modules and return a list of sets, where each sets for
src/haskell-names/Language/Haskell/Names/ScopeUtils.hs view
@@ -15,7 +15,7 @@  import           Data.Lens.Light import qualified Data.Set                                 as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  scopeError :: Functor f => Error l -> f l -> f (Scoped l) scopeError e f = Scoped (ScopeError e) <$> f
src/haskell-names/Language/Haskell/Names/SyntaxUtils.hs view
@@ -21,7 +21,7 @@ import           Data.Foldable import           Data.Maybe import qualified Data.Set                        as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts  dropAnn :: (Functor a) => a l -> a () dropAnn = fmap (const ())
src/haskell-names/Language/Haskell/Names/Types.hs view
@@ -34,7 +34,7 @@ import           Data.Foldable                            as F import           Data.Lens.Light import qualified Data.Set                                 as Set-import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts import           Text.Printf  type ExtensionSet = Set.Set KnownExtension
src/tests/Test/Compile.hs view
@@ -11,7 +11,7 @@ import           Test.Util                       (isRight) #endif -import           Language.Haskell.Exts.Annotated+import           Language.Haskell.Exts import           Test.Tasty import           Test.Tasty.HUnit import           Test.Tasty.TH
src/tests/Test/Desugar.hs view
@@ -10,13 +10,13 @@ import           Fay.Compiler.Prelude  import           Fay.Compiler.Desugar-import           Fay.Compiler.Parse              (parseFay)-import           Fay.Types.CompileError          (CompileError (..))+import           Fay.Compiler.Parse     (parseFay)+import           Fay.Types.CompileError (CompileError (..)) -import           Language.Haskell.Exts.Annotated hiding (alt, binds, loc, name)+import           Language.Haskell.Exts  hiding (alt, binds, loc, name) import           Test.Tasty import           Test.Tasty.HUnit-import           Text.Groom+-- import           Text.Groom  tests :: TestTree tests = testGroup "desugar" $ map (\(T k a b) -> testCase k $ doDesugar k a b) testDeclarations@@ -147,7 +147,7 @@   when (unAnn desugaredExpected /= unAnn originalExpected ) $ putStrLn "desugaredExpected /= undesugared"  g :: Show a => a -> IO ()-g = putStrLn . groom+g = putStrLn . show -- groom  unAnn :: Functor f => f a -> f () unAnn = void