@@ -1605,18 +1605,6 @@ reflectErr (NonCollapsiblePostulate n) = raw_apply (Var $ reflErrName "NonCollab
16051605reflectErr (AlreadyDefined n) = raw_apply (Var $ reflErrName "AlreadyDefined") [reflectName n]
16061606reflectErr (ProofSearchFail e) = raw_apply (Var $ reflErrName "ProofSearchFail") [reflectErr e]
16071607reflectErr (NoRewriting tm) = raw_apply (Var $ reflErrName "NoRewriting") [reflect tm]
1608−reflectErr (At fc err) = raw_apply (Var $ reflErrName "At") [reflectFC fc, reflectErr err]
1609− where reflectFC (FC source line col) = raw_apply (Var $ reflErrName "FileLoc")
1610− [ RConstant (Str source)
1611− , RConstant (I line)
1612− , RConstant (I col)
1613− ]
1614−reflectErr (Elaborating str n e) =
1615− raw_apply (Var $ reflErrName "Elaborating")
1616− [ RConstant (Str str)
1617− , reflectName n
1618− , reflectErr e
1619− ]
16201608reflectErr (ProviderError str) =
16211609 raw_apply (Var $ reflErrName "ProviderError") [RConstant (Str str)]
16221610reflectErr (LoadingFailed str err) =
@@ -1631,6 +1619,13 @@ withErrorReflection x = idrisCatch x (\ e -> handle e >>= ierror)
16311619 return e -- Don't do meta-reflection of errors
16321620 handle e@(ReflectionFailed _ _) = do logLvl 3 "Skipping reflection of reflection failure"
16331621 return e
1622+ -- At and Elaborating are just plumbing - error reflection shouldn't rewrite them
1623+ handle e@(At fc err) = do logLvl 3 "Reflecting body of At"
1624+ err' <- handle err
1625+ return (At fc err')
1626+ handle e@(Elaborating what n err) = do logLvl 3 "Reflecting body of Elaborating"
1627+ err' <- handle err
1628+ return (Elaborating what n err')
16341629 handle e = do ist <- getIState
16351630 logLvl 2 "Starting error reflection"
16361631 let handlers = idris_errorhandlers ist