packages feed

th-desugar 1.5.4 → 1.5.4.1

raw patch · 5 files changed

+25/−18 lines, 5 filesdep ~basedep ~template-haskellPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, template-haskell

API changes (from Hackage documentation)

- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.Con Language.Haskell.TH.Desugar.Core.DCon
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.Cxt Language.Haskell.TH.Desugar.Core.DCxt
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.Exp Language.Haskell.TH.Desugar.Core.DExp
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.Kind Language.Haskell.TH.Desugar.Core.DKind
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.TyVarBndr Language.Haskell.TH.Desugar.Core.DTyVarBndr
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar Language.Haskell.TH.Syntax.Type Language.Haskell.TH.Desugar.Core.DType
- Language.Haskell.TH.Desugar: instance Language.Haskell.TH.Desugar.Desugar [Language.Haskell.TH.Syntax.Dec] [Language.Haskell.TH.Desugar.Core.DDec]
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DClause
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DCon
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DConFields
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DDec
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DExp
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DForeign
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DKind
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DLetDec
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DMatch
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DPat
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DPragma
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DPred
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DRuleBndr
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DTySynEqn
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DTyVarBndr
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.DType
- Language.Haskell.TH.Desugar.Lift: instance Language.Haskell.TH.Syntax.Lift Language.Haskell.TH.Desugar.Core.NewOrData
+ Language.Haskell.TH.Desugar: instance Desugar Con DCon
+ Language.Haskell.TH.Desugar: instance Desugar Cxt DCxt
+ Language.Haskell.TH.Desugar: instance Desugar Exp DExp
+ Language.Haskell.TH.Desugar: instance Desugar Kind DKind
+ Language.Haskell.TH.Desugar: instance Desugar TyVarBndr DTyVarBndr
+ Language.Haskell.TH.Desugar: instance Desugar Type DType
+ Language.Haskell.TH.Desugar: instance Desugar [Dec] [DDec]
+ Language.Haskell.TH.Desugar.Lift: instance Lift DClause
+ Language.Haskell.TH.Desugar.Lift: instance Lift DCon
+ Language.Haskell.TH.Desugar.Lift: instance Lift DConFields
+ Language.Haskell.TH.Desugar.Lift: instance Lift DDec
+ Language.Haskell.TH.Desugar.Lift: instance Lift DExp
+ Language.Haskell.TH.Desugar.Lift: instance Lift DForeign
+ Language.Haskell.TH.Desugar.Lift: instance Lift DKind
+ Language.Haskell.TH.Desugar.Lift: instance Lift DLetDec
+ Language.Haskell.TH.Desugar.Lift: instance Lift DMatch
+ Language.Haskell.TH.Desugar.Lift: instance Lift DPat
+ Language.Haskell.TH.Desugar.Lift: instance Lift DPragma
+ Language.Haskell.TH.Desugar.Lift: instance Lift DPred
+ Language.Haskell.TH.Desugar.Lift: instance Lift DRuleBndr
+ Language.Haskell.TH.Desugar.Lift: instance Lift DTySynEqn
+ Language.Haskell.TH.Desugar.Lift: instance Lift DTyVarBndr
+ Language.Haskell.TH.Desugar.Lift: instance Lift DType
+ Language.Haskell.TH.Desugar.Lift: instance Lift NewOrData
- Language.Haskell.TH.Desugar: type DInstanceDec = DDec Guaranteed to be an instance declaration
+ Language.Haskell.TH.Desugar: type DInstanceDec = DDec

Files

CHANGES.md view
@@ -1,9 +1,13 @@ `th-desugar` release notes ========================== +Version 1.5.4.1+---------------+* Fix issue #32, concerning reification of classes with default methods.+ Version 1.5.4 --------------* Added+* Added `expandUnsoundly`  Version 1.5.3 -------------
Language/Haskell/TH/Desugar/Reify.hs view
@@ -153,7 +153,7 @@   localDeclarations = lift localDeclarations  instance (DsMonad m, Monoid w) => DsMonad (RWST r w s m) where-  localDeclarations = lift localDeclarations  +  localDeclarations = lift localDeclarations  -- | Add a list of declarations to be considered when reifying local -- declarations.@@ -196,14 +196,13 @@ reifyInDec n decs (NewtypeD _ ty_name tvbs con _)   | Just info <- maybeReifyCon n decs ty_name (map tvbToType tvbs) [con]   = Just info-reifyInDec n decs (ClassD _ _ _ _ sub_decs)-  | Just info <- firstMatch (reifyInDec n (sub_decs ++ decs)) sub_decs-  = Just info    -- must necessarily *not* be a method, because type signatures-                 -- don't reify reifyInDec n decs (ClassD _ ty_name tvbs _ sub_decs)   | Just ty <- findType n sub_decs   = Just $ ClassOpI n (addClassCxt ty_name tvbs ty)                     ty_name (findFixity n $ sub_decs ++ decs)+reifyInDec n decs (ClassD _ _ _ _ sub_decs)+  | Just info <- firstMatch (reifyInDec n (sub_decs ++ decs)) sub_decs+  = Just info reifyInDec n decs (InstanceD _ _ sub_decs)   | Just info <- firstMatch reify_in_instance sub_decs   = Just info@@ -245,11 +244,11 @@ mkVarI n decs = mkVarITy n decs (fromMaybe no_type $ findType n decs)   where     no_type = error $ "No type information found in local declaration for "-                      ++ show n    +                      ++ show n  mkVarITy :: Name -> [Dec] -> Type -> Info mkVarITy n decs ty = VarI n ty Nothing (findFixity n decs)-    + findFixity :: Name -> [Dec] -> Fixity findFixity n = fromMaybe defaultFixity . firstMatch match_fixity   where@@ -331,8 +330,8 @@      match_rec_sel (n', _, ty) | n `nameMatches` n' = Just ty     match_rec_sel _                     = Nothing-     + handleBug8884 :: Dec -> Dec #if __GLASGOW_HASKELL__ >= 707 handleBug8884 = id@@ -343,11 +342,10 @@     kind_from_maybe = fromMaybe StarT     tvb_kind (PlainTV _)    = Nothing     tvb_kind (KindedTV _ k) = Just k-    +     result_kind = kind_from_maybe m_kind     args_kinds  = map (kind_from_maybe . tvb_kind) tvbs      stupid_kind = mkArrows args_kinds result_kind handleBug8884 dec = dec-#endif    -+#endif
Language/Haskell/TH/Desugar/Util.hs view
@@ -10,7 +10,7 @@  module Language.Haskell.TH.Desugar.Util (   newUniqueName,-  impossible, +  impossible,   nameOccursIn, allNamesIn, mkTypeName, mkDataName, isDataName,   stripVarP_maybe, extractBoundNamesStmt,   concatMapM, mapMaybeM, expectJustM,@@ -40,7 +40,8 @@ ----------------------------------------  -- | Like newName, but even more unique (unique across different splices),--- and with unique @nameBase@s.+-- and with unique @nameBase@s. Precondition: the string is a valid Haskell+-- alphanumeric identifier (could be upper- or lower-case). newUniqueName :: Quasi q => String -> q Name newUniqueName str = do   n <- qNewName str@@ -166,7 +167,7 @@ -- | Extract all Names mentioned in a TH tree. allNamesIn :: Data a => a -> [Name] allNamesIn = everything (++) $ mkQ [] (:[])-               + -- | Extract the names bound in a @Stmt@ extractBoundNamesStmt :: Stmt -> S.Set Name extractBoundNamesStmt (BindS pat _) = extractBoundNamesPat pat@@ -271,4 +272,3 @@  firstMatch :: (a -> Maybe b) -> [a] -> Maybe b firstMatch f xs = listToMaybe $ mapMaybe f xs-    
Test/Splices.hs view
@@ -353,6 +353,10 @@ #if __GLASGOW_HASKELL__ >= 707   type family R21 (a :: k) (b :: k) :: k where R21 a b = b #endif+  class XXX a where+    r22 :: a -> a+    r22 = id   -- test #32+   |]  reifyDecsNames :: [Name]@@ -362,6 +366,7 @@ #if __GLASGOW_HASKELL__ >= 707   , "R21" #endif+  , "r22"   ]  simplCaseTests :: [Q Exp]
th-desugar.cabal view
@@ -1,5 +1,5 @@ name:           th-desugar-version:        1.5.4+version:        1.5.4.1 cabal-version:  >= 1.10 synopsis:       Functions to desugar Template Haskell homepage:       http://www.cis.upenn.edu/~eir/packages/th-desugar@@ -26,7 +26,7 @@ source-repository this   type:     git   location: https://github.com/goldfirere/th-desugar.git-  tag:      v1.5.4+  tag:      v1.5.4.1  library   build-depends: