summaryrefslogtreecommitdiff
path: root/src/GF/Compile
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Compile')
-rw-r--r--src/GF/Compile/CheckGrammar.hs2
-rw-r--r--src/GF/Compile/Rename.hs11
2 files changed, 7 insertions, 6 deletions
diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs
index 037d07072..3b3e9eaa6 100644
--- a/src/GF/Compile/CheckGrammar.hs
+++ b/src/GF/Compile/CheckGrammar.hs
@@ -664,7 +664,7 @@ checkLType env trm typ0 = do
pattContext :: LTEnv -> Type -> Patt -> Check Context
pattContext env typ p = case p of
PV x -> return [(x,typ)]
- PP q c ps | q /= cPredef -> do
+ PP q c ps | q /= cPredef || prt c == "CC" -> do ---- why this /=? AR 6/1/2006
t <- checkErr $ lookupResType cnc q c
(cont,v) <- checkErr $ typeFormCnc t
checkCond ("wrong number of arguments for constructor in" +++ prt p)
diff --git a/src/GF/Compile/Rename.hs b/src/GF/Compile/Rename.hs
index 70451a25a..c3369e9ef 100644
--- a/src/GF/Compile/Rename.hs
+++ b/src/GF/Compile/Rename.hs
@@ -221,14 +221,15 @@ renamePattern env patt = case patt of
PC c ps -> do
c' <- renameIdentTerm env $ Cn c
- psvss <- mapM renp ps
- let (ps',vs) = unzip psvss
case c' of
- QC p d -> return (PP p d ps', concat vs)
- Q p d -> return (PP p d ps', concat vs) ---- should not happen
+ QC p d -> renp $ PP p d ps
+ Q p d -> renp $ PP p d ps
_ -> prtBad "unresolved pattern" c' ---- (PC c ps', concat vs)
----- PP p c ps -> (PP p c ps',concat vs') where (ps',vs') = unzip $ map renp ps
+ PP p c ps -> do
+ psvss <- mapM renp ps
+ let (ps',vs) = unzip psvss
+ return (PP p c ps', concat vs)
PV x -> case renid patt of
Ok p -> return (p,[])