@@ -6,6 +6,7 @@ import Idris.Error
66import Idris.ElabDecls
77import Idris.ElabTerm
88import Idris.IBC
9+import Idris.Unlit
910import Paths_idris
1011
1112import Core.CoreParser
@@ -59,10 +60,14 @@ loadModule f
5960 then iLOG $ "Already read " ++ f
6061 else do putIState (i { imported = f : imported i })
6162 case fp of
62− IDR fn -> loadSource fn
63− IBC fn src -> idrisCatch (loadIBC fn)
64− (\c -> do iLOG $ fn ++ " failed"
65− loadSource src)
63+ IDR fn -> loadSource False fn
64+ LIDR fn -> loadSource True fn
65+ IBC fn src ->
66+ idrisCatch (loadIBC fn)
67+ (\c -> do iLOG $ fn ++ " failed"
68+ case src of
69+ IDR sfn -> loadSource False sfn
70+ LIDR sfn -> loadSource True sfn)
6671 let (dir, fh) = splitFileName f
6772 return (dropExtension fh))
6873 (\e -> do let msg = report e
@@ -70,9 +75,11 @@ loadModule f
7075 iputStrLn msg
7176 return "")
7277
73−loadSource :: FilePath -> Idris ()
74−loadSource f = do iLOG ("Reading " ++ f)
75− file <- lift $ readFile f
78+loadSource :: Bool -> FilePath -> Idris ()
79+loadSource lidr f
80+ = do iLOG ("Reading " ++ f)
81+ file_in <- lift $ readFile f
82+ file <- if lidr then tclift $ unlit f file_in else return file_in
7683 (mname, modules, rest, pos) <- parseImports f file
7784 mapM_ loadModule modules
7885 clearIBC -- start a new .ibc file
@@ -85,6 +92,8 @@ loadSource f = do iLOG ("Reading " ++ f)
8592 logLvl 10 (show (toAlist (idris_implicits i)))
8693 logLvl 3 (show (idris_infixes i))
8794 -- Now add all the declarations to the context
95+ repl <- useREPL
96+ when repl $ iputStrLn $ "Type checking " ++ f
8897 mapM_ (elabDecl toplevel) ds
8998 iLOG ("Finished " ++ f)
9099 let ibc = dropExtension f ++ ".ibc"