From b31294c088cb5647aaac07e93c468564d938b8e3 Mon Sep 17 00:00:00 2001 From: Greg Hurrell Date: Thu, 9 Jun 2016 22:56:21 -0700 Subject: [PATCH] Fix remaining warnings Which means we can turn -Werror back on. Made sure to get a full rebuild with: ``` rm -rf .stack-work/dist/* bin/build # really just `stack build --file-watch` bin/lint bin/test ``` --- docvim.cabal | 8 ++++---- lib/Text/Docvim/AST.hs | 2 ++ lib/Text/Docvim/Printer/Markdown.hs | 5 +---- lib/Text/Docvim/Printer/Vim.hs | 1 - lib/Text/Docvim/Visitor.hs | 4 ++-- lib/Text/Docvim/Visitor/Symbol.hs | 1 - 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/docvim.cabal b/docvim.cabal index df87029..f64e8ac 100644 --- a/docvim.cabal +++ b/docvim.cabal @@ -71,7 +71,7 @@ executable docvim build-depends: base >=4.8 && <4.9 , docvim - ghc-options: -W -Wall + ghc-options: -W -Wall -Werror -- Directories containing source files. hs-source-dirs: src @@ -118,14 +118,14 @@ library , Text.Docvim.Visitor.Section , Text.Docvim.Visitor.Symbol , Paths_docvim - ghc-options: -W -Wall + ghc-options: -W -Wall -Werror hs-source-dirs: lib test-suite hlint build-depends: base , hlint default-language: Haskell2010 - ghc-options: -W -Wall + ghc-options: -W -Wall -Werror hs-source-dirs: tests main-is: HLint.hs type: exitcode-stdio-1.0 @@ -169,7 +169,7 @@ test-suite tasty , Text.Docvim.Visitor.Section , Text.Docvim.Visitor.Symbol default-language: Haskell2010 - ghc-options: -W -Wall + ghc-options: -W -Wall -Werror hs-source-dirs: tests , lib main-is: Tasty.hs diff --git a/lib/Text/Docvim/AST.hs b/lib/Text/Docvim/AST.hs index 882d9cf..58ef984 100644 --- a/lib/Text/Docvim/AST.hs +++ b/lib/Text/Docvim/AST.hs @@ -1,4 +1,5 @@ {-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE RankNTypes #-} module Text.Docvim.AST where @@ -155,4 +156,5 @@ sanitizeAnchor = hyphenate . keepValid . downcase keepValid = filter (`elem` (['a'..'z'] ++ ['0'..'9'] ++ " -")) downcase = map toLower +invalidNode :: forall t. t invalidNode = error "Invalid Node type" diff --git a/lib/Text/Docvim/Printer/Markdown.hs b/lib/Text/Docvim/Printer/Markdown.hs index 0080a12..af195d8 100644 --- a/lib/Text/Docvim/Printer/Markdown.hs +++ b/lib/Text/Docvim/Printer/Markdown.hs @@ -5,16 +5,13 @@ import Data.List import Data.Maybe import Text.Docvim.AST import Text.Docvim.Parse -import Text.Docvim.Visitor.Plugin import Text.Docvim.Visitor.Symbol data Metadata = Metadata { symbols :: [String] } type Env = Reader Metadata String data Anchor = Anchor [Attribute] String -data Attribute = Attribute { attributeName :: String - , attributeValue :: String - } +data Attribute = Attribute String String markdown :: Node -> String markdown n = rstrip (runReader (node n) metadata) ++ "\n" diff --git a/lib/Text/Docvim/Printer/Vim.hs b/lib/Text/Docvim/Printer/Vim.hs index 2fd8212..b410b6f 100644 --- a/lib/Text/Docvim/Printer/Vim.hs +++ b/lib/Text/Docvim/Printer/Vim.hs @@ -12,7 +12,6 @@ import Data.Tuple import Text.Docvim.AST import Text.Docvim.Parse import Text.Docvim.Visitor.Plugin -import Text.Docvim.Visitor.Symbol -- TODO: add indentation here (using local, or just stick it in Context) diff --git a/lib/Text/Docvim/Visitor.hs b/lib/Text/Docvim/Visitor.hs index 2ec37b4..ace5e06 100644 --- a/lib/Text/Docvim/Visitor.hs +++ b/lib/Text/Docvim/Visitor.hs @@ -39,12 +39,12 @@ extractBlocks :: Alternative f => (a -> Maybe (a -> Bool)) -> [a] -> (f [a], [a] extractBlocks start = go where go [] = (empty, []) - go (x:xs) = maybe no_extract extract (start x) + go (x:xs) = maybe no_extract extract' (start x) where no_extract = (extracted, x:unextracted) where ~(extracted, unextracted) = go xs - extract stop = (pure (x:block) <|> extracted, unextracted) + extract' stop = (pure (x:block) <|> extracted, unextracted) where ~(block, remainder) = break stop xs ~(extracted, unextracted) = go remainder diff --git a/lib/Text/Docvim/Visitor/Symbol.hs b/lib/Text/Docvim/Visitor/Symbol.hs index 106c2c4..81fd6ad 100644 --- a/lib/Text/Docvim/Visitor/Symbol.hs +++ b/lib/Text/Docvim/Visitor/Symbol.hs @@ -1,6 +1,5 @@ module Text.Docvim.Visitor.Symbol (getSymbols) where -import Data.Char import Data.List import Text.Docvim.AST import Text.Docvim.Visitor.Plugin -- 2.40.1