@@ -10,6 +10,7 @@ module Language.Haskell.Liquid.UX.ACSS (
1010 ) where
1111
1212import Prelude hiding (error )
13+ import qualified SrcLoc
1314
1415import Language.Haskell.HsColour.Anchors
1516import Language.Haskell.HsColour.Classify as Classify
@@ -25,10 +26,11 @@ import Text.Printf
2526import Language.Haskell.Liquid.GHC.Misc
2627import Language.Haskell.Liquid.Types.Errors (panic , impossible )
2728
28- data AnnMap = Ann {
29- types :: M. HashMap Loc (String , String ) -- ^ Loc -> (Var, Type)
30- , errors :: [(Loc , Loc , String )] -- ^ List of error intervals
31- , status :: ! Status
29+ data AnnMap = Ann
30+ { types :: M. HashMap Loc (String , String ) -- ^ Loc -> (Var, Type)
31+ , errors :: [(Loc , Loc , String )] -- ^ List of error intervals
32+ , status :: ! Status
33+ , sptypes :: ! [(SrcLoc. RealSrcSpan , (String , String )) ]-- ^ Type information with spans
3234 }
3335
3436data Status = Safe | Unsafe | Error | Crash
@@ -93,7 +95,7 @@ annotTokenise baseLoc tx (src, annm) = zipWith (\(x,y) z -> (x,y,z)) toks annots
9395 linWidth = length $ show $ length $ lines src
9496
9597spanAnnot :: Int -> AnnMap -> Loc -> Annotation
96- spanAnnot w (Ann ts es _) span = A t e b
98+ spanAnnot w (Ann ts es _ _ ) span = A t e b
9799 where
98100 t = fmap snd (M. lookup span ts)
99101 e = fmap (\ _ -> " ERROR" ) $ find (span `inRange` ) [(x,y) | (x,y,_) <- es]
@@ -177,7 +179,7 @@ splitSrcAndAnns :: String -> (String, AnnMap)
177179splitSrcAndAnns s =
178180 let ls = lines s in
179181 case findIndex (breakS == ) ls of
180- Nothing -> (s, Ann M. empty [] Safe )
182+ Nothing -> (s, Ann M. empty [] Safe mempty )
181183 Just i -> (src, ann)
182184 where (codes, _: mname: annots) = splitAt i ls
183185 ann = annotParse mname $ dropWhile isSpace $ unlines annots
@@ -198,7 +200,7 @@ breakS :: [Char]
198200breakS = " MOUSEOVER ANNOTATIONS"
199201
200202annotParse :: String -> String -> AnnMap
201- annotParse mname s = Ann (M. fromList ts) [(x,y," " ) | (x,y) <- es] Safe
203+ annotParse mname s = Ann (M. fromList ts) [(x,y," " ) | (x,y) <- es] Safe mempty
202204 where
203205 (ts, es) = partitionEithers $ parseLines mname 0 $ lines s
204206
@@ -235,8 +237,9 @@ parseLines _ i _
235237 = panic Nothing $ " Error Parsing Annot Input on Line: " ++ show i
236238
237239instance Show AnnMap where
238- show (Ann ts es _ ) = " \n\n " ++ (concatMap ppAnnotTyp $ M. toList ts)
239- ++ (concatMap ppAnnotErr [(x,y) | (x,y,_) <- es])
240+ show (Ann ts es _ _) = " \n\n "
241+ ++ (concatMap ppAnnotTyp $ M. toList ts)
242+ ++ (concatMap ppAnnotErr [(x,y) | (x,y,_) <- es])
240243
241244ppAnnotTyp :: (PrintfArg t , PrintfType t1 ) => (Loc , (t , String )) -> t1
242245ppAnnotTyp (L (l, c), (x, s)) = printf " %s\n %d\n %d\n %d\n %s\n\n\n " x l c (length $ lines s) s
0 commit comments