@@ -3,6 +3,7 @@
3module Idris.ElabDecls where
3module Idris.ElabDecls where
5import Idris.AbsSyntax
5import Idris.AbsSyntax
7import Core.TT
8import Core.TT
8import Core.Elaborate
9import Core.Elaborate
@@ -63,6 +64,7 @@ elabVal tm
63 (tm', _) <- tclift $ elaborate ctxt (MN 0 "val") infP
64 (tm', _) <- tclift $ elaborate ctxt (MN 0 "val") infP
64 (build False (infTerm tm))
65 (build False (infTerm tm))
65 let vtm = getInferTerm tm'
66 let vtm = getInferTerm tm'
66 tclift $ recheck ctxt [] vtm
68 tclift $ recheck ctxt [] vtm
68elabClause :: PClause -> Idris (Term, Term)
70elabClause :: PClause -> Idris (Term, Term)
@@ -94,7 +96,7 @@ elabClause (PClause _ lhs rhs)
94 psolve tm = return ()
96 psolve tm = return ()
96elabDecl :: PDecl -> Idris ()
98elabDecl :: PDecl -> Idris ()
97−elabDecl d = idrisCatch (elabDecl' d) (\e -> iputStrLn (show e))
99+elabDecl d = idrisCatch (elabDecl' d) (\e -> iputStrLn (report e))
99elabDecl' (PFix _ _) = return () -- nothing to elaborate
101elabDecl' (PFix _ _) = return () -- nothing to elaborate
100elabDecl' (PTy n ty) = do iLOG $ "Elaborating type decl " ++ show n
102elabDecl' (PTy n ty) = do iLOG $ "Elaborating type decl " ++ show n
@@ -149,11 +151,11 @@ elab pattern tm = do elab' tm
151 elab' (PApp (PRef f) imps args)
153 elab' (PApp (PRef f) imps args)
154+ = try (do apply_elab f (map toElab imps ++ map (Just . elab') args)
152− = try (do ns <- apply (Var f) (map isph imps ++ map (\x -> False) args)
156+ (do ns <- apply (Var f) (map isph imps ++ map (\x -> False) args)
154 elabArgs ns (map snd imps ++ args))
158 elabArgs ns (map snd imps ++ args))
155− (do apply_elab f (map toElab imps ++ map (Just . elab') args)
157 elab' (PApp f [] [arg])
159 elab' (PApp f [] [arg])
158 = do simple_app (elab' f) (elab' arg)
160 = do simple_app (elab' f) (elab' arg)