@@ -25,6 +25,7 @@ import Idris.Core.TT
25import Idris.Core.Evaluate
25import Idris.Core.Evaluate
26import Idris.Core.CaseTree
26import Idris.Core.CaseTree
28+import Control.Applicative
28import Control.Monad.State
29import Control.Monad.State
29import Data.List
30import Data.List
30import qualified Data.IntMap as IM
31import qualified Data.IntMap as IM
@@ -51,13 +52,17 @@ compile codegen f tm
51 -- TODO: traverse all names correctly
52 -- TODO: traverse all names correctly
53 -- TODO: DEBUG-ONLY, remove
54 -- TODO: DEBUG-ONLY, remove
54− ist <- getIState
55+ ctx <- tt_ctxt <$> getIState
55− let depMap = buildDepMap (tt_ctxt ist) used
56+ let depMap = buildDepMap ctx used
56 let printItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
57 let printItem (cond, deps) = show (S.toList cond) ++ " -> " ++ show (S.toList deps)
57 iLOG $ "USAGE ANALYSIS:\n" ++ unlines (map printItem . M.toList $ depMap)
58 iLOG $ "USAGE ANALYSIS:\n" ++ unlines (map printItem . M.toList $ depMap)
60+ let fmtDepMap = unlines . map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) . M.toList
59 let minUse = minimalUsage depMap
61 let minUse = minimalUsage depMap
60− iLOG $ "MINIMAL USAGE:\n" ++ unlines (map (\(n,is) -> show n ++ " -> " ++ show (IS.toList is)) $ M.toList minUse)
62+ iLOG $ "MINIMAL USAGE:\n" ++ fmtDepMap minUse
64+ let unusedMap = usedToUnused ctx minUse
65+ iLOG $ "UNUSED:\n" ++ fmtDepMap unusedMap
61 -- END TODO
66 -- END TODO
63 maindef <- irMain tm
68 maindef <- irMain tm