rename top/put/modify on M to avoid collisions

This commit is contained in:
2025-02-01 16:47:10 -08:00
parent fad966b1ec
commit b6ce6cfb13
12 changed files with 72 additions and 70 deletions

View File

@@ -49,10 +49,10 @@ emptyTop = do
setDef : QName -> FC -> Tm -> Def -> M Unit
setDef name fc ty def = do
top <- get
top <- getTop
let (Nothing) = lookupMap' name top.defs
| Just (MkEntry fc' nm' ty' def') => error fc "\{show name} is already defined at \{show fc'}"
modify $ \case
modifyTop $ \case
MkTop mods imp ns defs metaCtx verbose errors ops =>
let defs = (updateMap name (MkEntry fc name ty def) top.defs) in
MkTop mods imp ns defs metaCtx verbose errors ops
@@ -60,15 +60,15 @@ setDef name fc ty def = do
updateDef : QName -> FC -> Tm -> Def -> M Unit
updateDef name fc ty def = do
top <- get
top <- getTop
let (Just (MkEntry fc' nm' ty' def')) = lookupMap' name top.defs
| Nothing => error fc "\{show name} not declared"
modify $ \case
modifyTop $ \case
MkTop mods imp ns defs metaCtx verbose errors ops =>
let defs = (updateMap name (MkEntry fc' name ty def) defs) in
MkTop mods imp ns defs metaCtx verbose errors ops
addError : Error -> M Unit
addError err = do
top <- get
top <- getTop
modifyIORef top.errors (_::_ err)