homplexity 0.4.3.1 → 0.4.3.2
raw patch · 5 files changed
+42/−21 lines, 5 filesdep ~cpphsdep ~haskell-src-exts
Dependency ranges changed: cpphs, haskell-src-exts
Files
- Language/Haskell/Homplexity/CodeFragment.hs +21/−8
- Language/Haskell/Homplexity/Comments.hs +1/−0
- Language/Haskell/Homplexity/Parse.hs +10/−7
- changelog.md +5/−1
- homplexity.cabal +5/−5
Language/Haskell/Homplexity/CodeFragment.hs view
@@ -1,12 +1,13 @@-{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE UndecidableInstances #-} -- | This module generalizes over types of code fragments -- that may need to be iterated upon and measured separately. module Language.Haskell.Homplexity.CodeFragment (@@ -103,15 +104,27 @@ fragmentLoc = getPointLoc . fragmentSlice +#if MIN_VERSION_haskell_src_exts(1,17,0)+getBinds = maybe [] singleton+mergeBinds = catMaybes+#else+getBinds = singleton+mergeBids = id+#endif+ instance CodeFragment Function where- type AST Function = Decl- matchAST (FunBind matches) = Just Function {..}+ type AST Function = Decl+ matchAST (FunBind matches) = Just+ Function {..} where- (functionLocations, (unName <$>) . take 1 -> functionNames, functionRhs, functionBinds) = unzip4 $ map extract matches+ (functionLocations,+ (unName <$>) . take 1 -> functionNames,+ functionRhs,+ mergeBinds -> functionBinds) = unzip4 $ map extract matches extract (Match srcLoc name _ _ rhs binds) = (srcLoc, name, rhs, binds) matchAST (PatBind (singleton -> functionLocations) pat (singleton -> functionRhs )- (singleton -> functionBinds )) = Just Function {..}+ (getBinds -> functionBinds )) = Just Function {..} where functionNames = wildcards ++ map unName (universeBi pat) wildcards = mapMaybe wildcard $ universeBi pat
Language/Haskell/Homplexity/Comments.hs view
@@ -19,6 +19,7 @@ import Data.Char import Data.Data import Data.Function+import Data.Functor import Data.List import Language.Haskell.Homplexity.CodeFragment
Language/Haskell/Homplexity/Parse.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -64,14 +65,16 @@ handleException helper (e :: SomeException) = return $ helper $ show e thisFileLoc = noLoc { srcFilename = inputFilename } parseMode = ParseMode {- parseFilename = inputFilename,- baseLanguage = Haskell2010,- extensions = myExtensions,- ignoreLanguagePragmas = False,- ignoreLinePragmas = False,- fixities = Just preludeFixities+ parseFilename = inputFilename+ , baseLanguage = Haskell2010+ , extensions = myExtensions+ , ignoreLanguagePragmas = False+ , ignoreLinePragmas = False+ , fixities = Just preludeFixities+#if MIN_VERSION_haskell_src_exts(1,17,0)+ , ignoreFunctionArity = False+#endif }- {-putStrLn "COMMENTS:" putStrLn $ unlines $ map show $ classifyComments comments putStrLn "COMMENTABLES:"
changelog.md view
@@ -1,6 +1,10 @@ Changelog =========- 0.4.3.1 Feb 2015+ 0.4.3.2 May 2016++ * Updated deps.++ 0.4.3.1 Feb 2016 * Updated bounds for GHC 8.0.
homplexity.cabal view
@@ -1,5 +1,5 @@ name: homplexity-version: 0.4.3.1+version: 0.4.3.2 synopsis: Haskell code quality tool description: Homplexity aims to measure code complexity, warning about fragments that might have higher defect probability@@ -16,7 +16,7 @@ license-file: LICENSE author: Michal J. Gajda maintainer: mjgajda@gmail.com-copyright: Copyright by Michal J. Gajda '2015+copyright: Copyright by Michal J. Gajda '2015-'2016 category: Language, Tools build-type: Simple extra-source-files: README.md changelog.md@@ -57,7 +57,7 @@ GeneralizedNewtypeDeriving, TypeFamilies build-depends: base >=4.5 && <4.10,- haskell-src-exts >=1.12 && <1.17,+ haskell-src-exts >=1.17 && <1.18, directory >=1.1 && <1.3, filepath >=1.2 && <1.5, hflags >=0.3 && <0.5,@@ -65,7 +65,7 @@ deepseq >=1.3 && <1.5, containers >=0.3 && <0.6, template-haskell >=2.6 && <2.12,- cpphs >=1.5 && <1.20+ cpphs >=1.5 && <1.21 build-tools: happy >= 1.19.0 -- hs-source-dirs: default-language: Haskell2010@@ -77,7 +77,7 @@ Language.Haskell.Homplexity.SrcSlice type: exitcode-stdio-1.0 build-depends: base >=4.5 && <4.10,- haskell-src-exts >=1.12 && <1.17,+ haskell-src-exts >=1.17 && <1.18, uniplate >=1.4 && <1.7 default-language: Haskell2010