From 674dea6d574c9b9d5f288b01cf3be0b5fc8aadfb Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 12 Oct 2007 08:37:57 +0000 Subject: [PATCH] check circularity in param --- src/GF/Compile/CheckGrammar.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index d9dfe996d..d68b03812 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -1025,17 +1025,19 @@ allOperDependencies m b = where opersIn t = case t of Q n c | n == m -> [c] + QC n c | n == m -> [c] _ -> collectOp opersIn t opty (Yes ty) = opersIn ty opty _ = [] pts i = case i of ResOper pty pt -> [pty,pt] + ResParam (Yes (ps,_)) -> [Yes t | (_,cont) <- ps, (_,t) <- cont] CncFun _ pt _ -> [pt] ---- (Maybe (Ident,(Context,Type)) _ -> [] ---- ResParam topoSortOpers :: [(Ident,[Ident])] -> Err [Ident] topoSortOpers st = do - let eops = topoTest st + let eops = topoTest (trace (show st) st) either return (\ops -> Bad ("circular definitions:" +++ unwords (map prt (head ops))))