diff options
Diffstat (limited to 'src/compiler/GF/Compile/Abstract')
| -rw-r--r-- | src/compiler/GF/Compile/Abstract/TypeCheck.hs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/compiler/GF/Compile/Abstract/TypeCheck.hs b/src/compiler/GF/Compile/Abstract/TypeCheck.hs index bddc6f0c0..74804983d 100644 --- a/src/compiler/GF/Compile/Abstract/TypeCheck.hs +++ b/src/compiler/GF/Compile/Abstract/TypeCheck.hs @@ -72,11 +72,10 @@ checkContext st = checkTyp st . cont2exp checkTyp :: SourceGrammar -> Type -> [Message] checkTyp gr typ = err (\x -> [text x]) ppConstrs $ justTypeCheck gr typ vType -checkDef :: SourceGrammar -> Fun -> Type -> [L Equation] -> [Message] -checkDef gr (m,fun) typ eqs = err (\x -> [text x]) ppConstrs $ do - bcs <- mapM (\(L _ b) -> checkBranch (grammar2theory gr) (initTCEnv []) b (type2val typ)) eqs - let (bs,css) = unzip bcs - (constrs,_) <- unifyVal (concat css) +checkDef :: SourceGrammar -> Fun -> Type -> Equation -> [Message] +checkDef gr (m,fun) typ eq = err (\x -> [text x]) ppConstrs $ do + (b,cs) <- checkBranch (grammar2theory gr) (initTCEnv []) eq (type2val typ) + (constrs,_) <- unifyVal cs return $ filter notJustMeta constrs checkConstrs :: SourceGrammar -> Cat -> [Ident] -> [String] |
