From 750ef2ca30b7e075d0a0b1404ee2dc741b3f2166 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 23 May 2006 22:20:00 +0000 Subject: [PATCH] bug fix in with-modules and gr checker; factoring out cats to Common --- src/GF/Compile/CheckGrammar.hs | 6 +++--- src/GF/Compile/Rebuild.hs | 4 ++-- src/GF/Infra/Modules.hs | 2 +- src/GF/Source/SourceToGrammar.hs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index d36045158..96c4a1a9d 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -346,7 +346,7 @@ inferLType gr trm = case trm of Q m ident | isPredef m -> termWith trm $ checkErr (typPredefined ident) Q m ident -> checks [ - termWith trm $ checkErr (lookupResType gr m ident) + termWith trm $ checkErr (lookupResType gr m ident) >>= comp , checkErr (lookupResDef gr m ident) >>= infer , @@ -356,7 +356,7 @@ inferLType gr trm = case trm of QC m ident | isPredef m -> termWith trm $ checkErr (typPredefined ident) QC m ident -> checks [ - termWith trm $ checkErr (lookupResType gr m ident) + termWith trm $ checkErr (lookupResType gr m ident) >>= comp , checkErr (lookupResDef gr m ident) >>= infer , @@ -825,7 +825,7 @@ checkEqLType env t u trm = do not (any (\ (k,b) -> alpha g a b && l == k) ts)] (locks,others) = partition isLockLabel ls in case others of - _:_ -> Bad $ "missing record fieds" +++ unwords (map prt others) + _:_ -> Bad $ "missing record fields" +++ unwords (map prt others) _ -> return locks _ -> Bad "" diff --git a/src/GF/Compile/Rebuild.hs b/src/GF/Compile/Rebuild.hs index fd7d4cd88..452a485c8 100644 --- a/src/GF/Compile/Rebuild.hs +++ b/src/GF/Compile/Rebuild.hs @@ -72,8 +72,8 @@ rebuildModule ms mo@(i,mi) = do ++ [oQualif i i | i <- map snd insts] ---- ++ [oSimple i | i <- map snd insts] ---- ---- ++ [oSimple ext] ---- to encode dependence - --- check if me is incomplete; --- why inherit all forced by syntax - return $ ModMod $ Module mt0 stat' fs (map inheritAll me) ops1 js + --- check if me is incomplete + return $ ModMod $ Module mt0 stat' fs me ops1 js ---- (mapTree (qualifInstanceInfo insts) js) -- not needed _ -> return mi diff --git a/src/GF/Infra/Modules.hs b/src/GF/Infra/Modules.hs index e8f372896..3f61247a5 100644 --- a/src/GF/Infra/Modules.hs +++ b/src/GF/Infra/Modules.hs @@ -58,7 +58,7 @@ data MGrammar i f a = MGrammar {modules :: [(i,ModInfo i f a)]} data ModInfo i f a = ModMainGrammar (MainGrammar i) | ModMod (Module i f a) - | ModWith (ModuleType i) ModuleStatus i [i] [OpenSpec i] + | ModWith (ModuleType i) ModuleStatus i [(i,MInclude i)] [OpenSpec i] deriving Show data Module i f a = Module { diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs index 4aa5b55a6..c77a9f47b 100644 --- a/src/GF/Source/SourceToGrammar.hs +++ b/src/GF/Source/SourceToGrammar.hs @@ -112,7 +112,7 @@ transModDef x = case x of opens' <- mapM transOpen opens return (id', GM.ModWith mtyp' mstat' m' [] opens') MWithE extends m opens -> do - extends' <- liftM (map fst) $ mapM transIncludedExt extends + extends' <- mapM transIncludedExt extends m' <- transIdent m opens' <- mapM transOpen opens return (id', GM.ModWith mtyp' mstat' m' extends' opens')