@@ -1540,6 +1540,9 @@ runTactical fc ctxt env tm = runTacTm (eval tm) >> return ()
1540 else fmap fst . get_type_val $
1540 else fmap fst . get_type_val $
1541 RApp (Var (sNS (sUN "Nothing") ["Maybe", "Prelude"]))
1541 RApp (Var (sNS (sUN "Nothing") ["Maybe", "Prelude"]))
1542 (Var (reflm "TT"))
1542 (Var (reflm "TT"))
1543+ | n == tacN "prim__SourceLocation", [] <- args
1544+ = fmap fst . get_type_val $
1543 | n == tacN "prim__Env", [] <- args
1546 | n == tacN "prim__Env", [] <- args
1544 = do env <- get_env
1547 = do env <- get_env
1545 fmap fst . get_type_val $ reflectEnv env
1548 fmap fst . get_type_val $ reflectEnv env
@@ -1835,22 +1838,7 @@ runTac autoSolve ist perhapsFC fn tac
1835 case perhapsFC of
1838 case perhapsFC of
1836 Nothing -> lift . tfail $ Msg "There is no source location available."
1839 Nothing -> lift . tfail $ Msg "There is no source location available."
1837 Just fc ->
1840 Just fc ->
1838− do let intTy = RConstant (AType (ATInt ITNative))
1841+ do fill $ reflectFC fc
1839− fill $ raw_apply (Var (reflm "FileLoc"))
1840− [ RConstant (Str (fc_fname fc))
1841− , raw_apply (Var pairCon) $
1843− map (RConstant . I)
1844− [ fst (fc_start fc)
1845− , snd (fc_start fc)
1847− , raw_apply (Var pairCon) $
1849− map (RConstant . I)
1855 runT x = fail $ "Not implemented " ++ show x
1843 runT x = fail $ "Not implemented " ++ show x
@@ -2623,6 +2611,25 @@ reflectErr (LoadingFailed str err) =
2623 raw_apply (Var $ reflErrName "LoadingFailed") [RConstant (Str str)]
2611 raw_apply (Var $ reflErrName "LoadingFailed") [RConstant (Str str)]
2624reflectErr x = raw_apply (Var (sNS (sUN "Msg") ["Errors", "Reflection", "Language"])) [RConstant . Str $ "Default reflection: " ++ show x]
2612reflectErr x = raw_apply (Var (sNS (sUN "Msg") ["Errors", "Reflection", "Language"])) [RConstant . Str $ "Default reflection: " ++ show x]
2614+-- | Reflect a file context
2615+reflectFC :: FC -> Raw
2616+reflectFC fc = raw_apply (Var (reflm "FileLoc"))
2617+ [ RConstant (Str (fc_fname fc))
2618+ , raw_apply (Var pairCon) $
2620+ map (RConstant . I)
2621+ [ fst (fc_start fc)
2622+ , snd (fc_start fc)
2624+ , raw_apply (Var pairCon) $
2626+ map (RConstant . I)
2631+ where intTy = RConstant (AType (ATInt ITNative))
2626elaboratingArgErr :: [(Name, Name)] -> Err -> Err
2633elaboratingArgErr :: [(Name, Name)] -> Err -> Err
2627elaboratingArgErr [] err = err
2634elaboratingArgErr [] err = err
2628elaboratingArgErr ((f,x):during) err = fromMaybe err (rewrite err)
2635elaboratingArgErr ((f,x):during) err = fromMaybe err (rewrite err)