summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-05-23 22:20:00 +0000
committeraarne <aarne@cs.chalmers.se>2006-05-23 22:20:00 +0000
commit750ef2ca30b7e075d0a0b1404ee2dc741b3f2166 (patch)
tree9ab90a622422203e627e1383a076b0e87f3ca117
parent00e7c3225e0399917e3a602a43b26ec238b870bc (diff)
bug fix in with-modules and gr checker; factoring out cats to Common
-rw-r--r--src/GF/Compile/CheckGrammar.hs6
-rw-r--r--src/GF/Compile/Rebuild.hs4
-rw-r--r--src/GF/Infra/Modules.hs2
-rw-r--r--src/GF/Source/SourceToGrammar.hs2
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')