From 75b03fb624af33c9b90c3f3dccacadf18b442d17 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 18 Feb 2005 13:53:29 +0000 Subject: working on resource doc and exx, fixing bugs --- src/GF/Grammar/Lookup.hs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/GF/Grammar/Lookup.hs') diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index 06672cb72..d0c8434ce 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -60,8 +60,17 @@ lookupResType gr m c = do -- used in reused concrete CncCat _ _ _ -> return typeType - CncFun (Just (_,(cont,val))) _ _ -> return $ mkProd (cont, val, []) - + CncFun (Just (cat,(cont,val))) _ _ -> do + val' <- lockRecType cat val + return $ mkProd (cont, val', []) + CncFun _ _ _ -> do + a <- abstractOfConcrete gr m + mu <- lookupModMod gr a + info <- lookupInfo mu c + case info of + AbsFun (Yes ty) _ -> return $ redirectTerm m ty + AbsCat _ _ -> return typeType + _ -> prtBad "cannot find type of reused function" c AnyInd _ n -> lookupResType gr n c ResParam _ -> return $ typePType ResValue (Yes t) -> return $ qualifAnnotPar m t -- cgit v1.2.3