hdevtools 0.1.0.6 → 0.1.0.7
raw patch · 3 files changed
+39/−13 lines, 3 filesdep ~Cabal
Dependency ranges changed: Cabal
Files
- hdevtools.cabal +9/−4
- src/Cabal.hs +16/−2
- src/Info.hs +14/−7
hdevtools.cabal view
@@ -1,5 +1,5 @@ name: hdevtools-version: 0.1.0.6+version: 0.1.0.7 synopsis: Persistent GHC powered background server for FAST haskell development tools description: 'hdevtools' is a backend for text editor plugins, to allow for things such as@@ -33,14 +33,14 @@ maintainer: schell.scivally@synapsegroup.com copyright: See AUTHORS file category: Development-homepage: https://github.com/bitc/hdevtools/-bug-reports: https://github.com/bitc/hdevtools/issues/+homepage: https://github.com/schell/hdevtools/+bug-reports: https://github.com/schell/hdevtools/issues/ build-type: Simple cabal-version: >=1.8 source-repository head type: git- location: git://github.com/bitc/hdevtools.git+ location: git://github.com/schell/hdevtools.git executable hdevtools hs-source-dirs: src@@ -58,6 +58,7 @@ Types, Util, Paths_hdevtools+ build-depends: base == 4.*, cmdargs, directory,@@ -75,4 +76,8 @@ if impl(ghc >= 7.7) build-depends: Cabal >= 1.18+ cpp-options: -DENABLE_CABAL++ if impl(ghc >= 7.9)+ build-depends: Cabal >= 1.22 cpp-options: -DENABLE_CABAL
src/Cabal.hs view
@@ -27,6 +27,10 @@ import Distribution.Simple.Program.Types (ConfiguredProgram(programVersion), simpleProgram) import Distribution.Simple.Program.GHC (GhcOptions(..), renderGhcOptions) import Distribution.Simple.Setup (ConfigFlags(..), defaultConfigFlags, toFlag)+#if __GLASGOW_HASKELL__ >= 709+import Distribution.Utils.NubList+import qualified Distribution.Simple.GHC as GHC(configure)+#endif import Distribution.Verbosity (silent) import Distribution.Version (Version(..)) @@ -126,14 +130,24 @@ let mbLibName = pkgLibName pkgDescr let ghcOpts' = foldl' mappend mempty $ map (getComponentGhcOptions localBuildInfo) $ flip allComponentsBy (\c -> c) . localPkgDescr $ localBuildInfo+#if __GLASGOW_HASKELL__ >= 709 -- FIX bug in GhcOptions' `mappend`- ghcOpts = ghcOpts' { ghcOptExtra = filter (/= "-Werror") $ nub $ ghcOptExtra ghcOpts'+ ghcOpts = ghcOpts' { ghcOptExtra = overNubListR (filter (/= "-Werror")) $ ghcOptExtra ghcOpts' , ghcOptPackageDBs = sort $ nub (ghcOptPackageDBs ghcOpts')+ , ghcOptPackages = overNubListR (filter (\(_, pkgId, _) -> Just (pkgName pkgId) /= mbLibName)) $ (ghcOptPackages ghcOpts')+ , ghcOptSourcePath = overNubListR (map (baseDir </>)) (ghcOptSourcePath ghcOpts')+ }++ (ghcInfo,_,_) <- GHC.configure silent (Just path) Nothing defaultProgramConfiguration++ return $ Right $ renderGhcOptions ghcInfo ghcOpts+#else+ ghcOpts = ghcOpts' { ghcOptExtra = filter (/= "-Werror") $ nub $ ghcOptExtra ghcOpts' , ghcOptPackages = filter (\(_, pkgId) -> Just (pkgName pkgId) /= mbLibName) $ nub (ghcOptPackages ghcOpts') , ghcOptSourcePath = map (baseDir </>) (ghcOptSourcePath ghcOpts') }- return $ Right $ renderGhcOptions ghcVersion ghcOpts+#endif pkgLibName :: PackageDescription -> Maybe PackageName pkgLibName pkgDescr = if hasLibrary pkgDescr
src/Info.hs view
@@ -18,6 +18,8 @@ #endif #if __GLASGOW_HASKELL__ >= 708 import qualified HsExpr+#else+import qualified TcRnTypes #endif import qualified GHC import qualified HscTypes@@ -26,7 +28,6 @@ import qualified PprTyThing import qualified Pretty import qualified TcHsSyn-import qualified TcRnTypes getIdentifierInfo :: FilePath -> String -> GHC.Ghc (Either String String) getIdentifierInfo file identifier =@@ -131,29 +132,31 @@ getTypeLHsBind :: GHC.TypecheckedModule -> GHC.LHsBind GHC.Id -> GHC.Ghc (Maybe (GHC.SrcSpan, GHC.Type)) #if __GLASGOW_HASKELL__ >= 708-getTypeLHsBind _ (GHC.L spn GHC.FunBind{GHC.fun_matches = HsExpr.MG _ _ typ _}) = return $ Just (spn, typ)+getTypeLHsBind _ (GHC.L spn GHC.FunBind{GHC.fun_matches = grp}) = return $ Just (spn, HsExpr.mg_res_ty grp) #else getTypeLHsBind _ (GHC.L spn GHC.FunBind{GHC.fun_matches = GHC.MatchGroup _ typ}) = return $ Just (spn, typ) #endif getTypeLHsBind _ _ = return Nothing getTypeLHsExpr :: GHC.TypecheckedModule -> GHC.LHsExpr GHC.Id -> GHC.Ghc (Maybe (GHC.SrcSpan, GHC.Type))+#if __GLASGOW_HASKELL__ >= 708+getTypeLHsExpr _ e = do+#else getTypeLHsExpr tcm e = do+#endif hs_env <- GHC.getSession #if __GLASGOW_HASKELL__ >= 708- let fm_inst_env = TcRnTypes.tcg_fam_inst_env $ fst $ GHC.tm_internals_ tcm (_, mbe) <- liftIO $ Desugar.deSugarExpr hs_env e #else+ let modu = GHC.ms_mod $ GHC.pm_mod_summary $ GHC.tm_parsed_module tcm+ rn_env = TcRnTypes.tcg_rdr_env $ fst $ GHC.tm_internals_ tcm+ ty_env = TcRnTypes.tcg_type_env $ fst $ GHC.tm_internals_ tcm (_, mbe) <- liftIO $ Desugar.deSugarExpr hs_env modu rn_env ty_env e #endif return () case mbe of Nothing -> return Nothing Just expr -> return $ Just (GHC.getLoc e, CoreUtils.exprType expr)- where- modu = GHC.ms_mod $ GHC.pm_mod_summary $ GHC.tm_parsed_module tcm- rn_env = TcRnTypes.tcg_rdr_env $ fst $ GHC.tm_internals_ tcm- ty_env = TcRnTypes.tcg_type_env $ fst $ GHC.tm_internals_ tcm getTypeLPat :: GHC.TypecheckedModule -> GHC.LPat GHC.Id -> GHC.Ghc (Maybe (GHC.SrcSpan, GHC.Type)) getTypeLPat _ (GHC.L spn pat) = return $ Just (spn, TcHsSyn.hsPatType pat)@@ -208,7 +211,11 @@ | (const False `extQ` postTcType `extQ` fixity `extQ` nameSet) x = z | otherwise = foldl k (f x) (gmapQ (everythingStaged stage k z f) x) where nameSet = const (stage `elem` [Parser,TypeChecker]) :: NameSet.NameSet -> Bool+#if __GLASGOW_HASKELL__ >= 709+ postTcType = const (stage<TypeChecker) :: GHC.PostTc GHC.Id GHC.Type -> Bool+#else postTcType = const (stage<TypeChecker) :: GHC.PostTcType -> Bool+#endif fixity = const (stage<Renamer) :: GHC.Fixity -> Bool ------------------------------------------------------------------------------