M-t inserts inferred type!

This commit is contained in:
Kazu Yamamoto
2010-03-14 22:39:45 +09:00
parent 91c04be421
commit 14ef0f8372
3 changed files with 43 additions and 19 deletions

View File

@@ -18,17 +18,23 @@ checkSyntax opt file = do
(_,_,herr,_) <- runInteractiveProcess (ghc opt) ["--make","-Wall",file,"-outputdir","dist/flymake","-o","dist/flymake/a.out"] Nothing Nothing
refine <$> hGetContents herr
where
refine = unfoldLines start . map (dropWhile isSpace) . filter (/="") . lines
start = (file `isPrefixOf`)
refine = unfoldLines . map shrinkSpaces . remove . lines
remove = filter (\x -> not ("Linking" `isPrefixOf` x))
. filter (\x -> not ("[" `isPrefixOf` x))
. filter (/="")
shrinkSpaces x
| isSpace (head x) = ' ' : dropWhile isSpace x
| otherwise = x
unfoldLines :: (String -> Bool) -> [String] -> String
unfoldLines _ [] = ""
unfoldLines p (x:xs) = x ++ unfold xs
unfoldLines :: [String] -> String
unfoldLines [] = ""
unfoldLines (x:xs) = x ++ unfold xs
where
unfold [] = "\n"
unfold (l:ls)
| p l = ('\n':l) ++ unfold ls
| otherwise = (' ' :l) ++ unfold ls
| isAlpha (head l) = ('\n':l) ++ unfold ls
| " Inferred" `isPrefixOf` l = "." ++ l ++ unfold ls
| otherwise = l ++ unfold ls
----------------------------------------------------------------