summaryrefslogtreecommitdiff
path: root/src/GF/Compile/CheckGrammar.hs
diff options
context:
space:
mode:
authoraarne <unknown>2003-10-24 18:19:47 +0000
committeraarne <unknown>2003-10-24 18:19:47 +0000
commit8cce874f8b5f93c3bff65b625c03b3c55f1b5f31 (patch)
tree4ac32640f29110ee4a9e2fccb57583ac898551f0 /src/GF/Compile/CheckGrammar.hs
parente620ffbd9432fc9ab4f3174ecf9c117db27af772 (diff)
More woek on interfaces
Diffstat (limited to 'src/GF/Compile/CheckGrammar.hs')
-rw-r--r--src/GF/Compile/CheckGrammar.hs30
1 files changed, 9 insertions, 21 deletions
diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs
index 7bfd2924e..8e07778bc 100644
--- a/src/GF/Compile/CheckGrammar.hs
+++ b/src/GF/Compile/CheckGrammar.hs
@@ -54,7 +54,7 @@ checkModule ms (name,mod) = checkIn ("checking module" +++ prt name) $ case mod
MTInstance a -> do
ModMod abs <- checkErr $ lookupModule gr a
- checkCompleteInstance abs mo
+ -- checkCompleteInstance abs mo -- this is done in Rebuild
mapMTree (checkResInfo gr) js
return $ (name, ModMod (Module mt st fs me ops js')) : ms
@@ -91,18 +91,6 @@ checkCompleteGrammar abs cnc = mapM_ checkWarn $
then id
else (("Warning: no linearization of" +++ prt f):)
-checkCompleteInstance :: SourceRes -> SourceRes -> Check ()
-checkCompleteInstance abs cnc = mapM_ checkWarn $
- checkComplete [f | (f, ResOper (Yes _) _) <- abs'] cnc'
- where
- abs' = tree2list $ jments abs
- cnc' = mapTree fst $ jments cnc
- checkComplete sought given = foldr ckOne [] sought
- where
- ckOne f = if isInBinTree f given
- then id
- else (("Warning: no definition given to" +++ prt f):)
-
-- General Principle: only Yes-values are checked.
-- A May-value has always been checked in its origin module.
@@ -623,14 +611,14 @@ checkEqLType env t u trm = do
(Prod x a b, Prod y c d) -> alpha g a c && alpha ((x,y):g) b d
---- this should be made in Rename
- (Q m a, Q n b) | a == b -> elem m (allExtends env n)
- || elem n (allExtends env m)
- (QC m a, QC n b) | a == b -> elem m (allExtends env n)
- || elem n (allExtends env m)
- (QC m a, Q n b) | a == b -> elem m (allExtends env n)
- || elem n (allExtends env m)
- (Q m a, QC n b) | a == b -> elem m (allExtends env n)
- || elem n (allExtends env m)
+ (Q m a, Q n b) | a == b -> elem m (allExtendsPlus env n)
+ || elem n (allExtendsPlus env m)
+ (QC m a, QC n b) | a == b -> elem m (allExtendsPlus env n)
+ || elem n (allExtendsPlus env m)
+ (QC m a, Q n b) | a == b -> elem m (allExtendsPlus env n)
+ || elem n (allExtendsPlus env m)
+ (Q m a, QC n b) | a == b -> elem m (allExtendsPlus env n)
+ || elem n (allExtendsPlus env m)
(RecType rs, RecType ts) -> and [alpha g a b && l == k --- too strong req
| ((l,a),(k,b)) <- zip rs ts]