1
1
{-# LANGUAGE DataKinds #-}
2
- {-# LANGUAGE DeriveAnyClass #-}
3
2
{-# LANGUAGE DeriveGeneric #-}
4
3
{-# LANGUAGE LambdaCase #-}
5
4
{-# LANGUAGE OverloadedStrings #-}
6
- {-# LANGUAGE TupleSections #-}
7
5
8
6
module Main (main ) where
9
7
10
- import Control.Monad (unless , (>=>) , foldM )
8
+ import Control.Monad (unless , foldM )
11
9
import Control.Monad.Error.Class (throwError )
12
- import Control.Monad.IO.Class (liftIO )
13
10
import Control.Monad.Logger (runLogger' )
14
- import Control.Monad.State (State )
15
11
import qualified Control.Monad.State as State
16
12
import Control.Monad.Trans (lift )
17
13
import Control.Monad.Trans.Except (ExceptT (.. ), runExceptT )
@@ -23,15 +19,12 @@ import Data.Bifunctor (first, second)
23
19
import qualified Data.ByteString.Lazy as BL
24
20
import Data.Default (def )
25
21
import Data.Function (on )
26
- import Data.List (foldl' , nubBy )
22
+ import Data.List (nubBy )
27
23
import qualified Data.List.NonEmpty as NE
28
24
import qualified Data.Map as M
29
- import Data.String (fromString )
30
25
import Data.Text (Text )
31
26
import qualified Data.Text as T
32
27
import qualified Data.Text.Encoding as T
33
- import qualified Data.Text.Lazy as TL
34
- import Data.Traversable (for )
35
28
import GHC.Generics (Generic )
36
29
import qualified Language.PureScript as P
37
30
import qualified Language.PureScript.CST as CST
@@ -45,10 +38,7 @@ import qualified Language.PureScript.TypeChecker.TypeSearch as TS
45
38
import qualified Network.Wai.Handler.Warp as Warp
46
39
import System.Environment (getArgs )
47
40
import System.Exit (exitFailure )
48
- import System.FilePath ((</>) )
49
41
import System.FilePath.Glob (glob )
50
- import qualified System.IO as IO
51
- import System.IO.UTF8 (readUTF8File )
52
42
import Web.Scotty
53
43
import qualified Web.Scotty as Scotty
54
44
@@ -67,7 +57,6 @@ server externs initNamesEnv initEnv port = do
67
57
compile input
68
58
| T. length input > 20000 = return (Left (OtherError " Please limit your input to 20000 characters" ))
69
59
| otherwise = do
70
- let printErrors = P. prettyPrintMultipleErrors (P. defaultPPEOptions { P. ppeCodeColor = Nothing })
71
60
case CST. parseModuleFromFile " <file>" input >>= CST. resFull of
72
61
Left parseError ->
73
62
return . Left . CompilerErrors . P. toJSONErrors False P. Error $ CST. toMultipleErrors " <file>" parseError
@@ -137,7 +126,7 @@ lookupAllConstructors env = P.everywhereOnTypesM $ \case
137
126
lookupConstructor :: P. Environment -> P. ProperName 'P.TypeName -> [P. Qualified (P. ProperName 'P.TypeName )]
138
127
lookupConstructor env nm =
139
128
[ q
140
- | (q@ (P. Qualified (Just mn ) thisNm), _) <- M. toList (P. types env)
129
+ | (q@ (P. Qualified (Just _ ) thisNm), _) <- M. toList (P. types env)
141
130
, thisNm == nm
142
131
]
143
132
@@ -165,7 +154,7 @@ tryParseType = hush . fmap (CST.convertType "<file>") . runParser CST.parseTypeP
165
154
166
155
runParser :: CST. Parser a -> Text -> Either String a
167
156
runParser p =
168
- first (CST. prettyPrintError . NE. head )
157
+ first (CST. prettyPrintError . NE. head )
169
158
. CST. runTokenParser (p <* CSTM. token CST. TokEof )
170
159
. CST. lexTopLevel
171
160
@@ -174,7 +163,6 @@ main = do
174
163
(portString : inputGlobs) <- getArgs
175
164
let port = read portString
176
165
inputFiles <- concat <$> traverse glob inputGlobs
177
- let onError f = either (Left . f) Right
178
166
e <- runExceptT $ do
179
167
modules <- ExceptT $ I. loadAllModules inputFiles
180
168
(exts, env) <- ExceptT . I. runMake . I. make $ map (second CST. pureResult) modules
0 commit comments