From 14061ef4df8da8cad6f1c88b40d29bd5913a5155 Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 23 Sep 2013 09:18:27 +0000 Subject: GF.Grammar.Grammar.allExtends now returns a list of source modules instead of just the module names. This saves extra lookups later --- src/compiler/GF/Compile/Rename.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/compiler/GF/Compile/Rename.hs') diff --git a/src/compiler/GF/Compile/Rename.hs b/src/compiler/GF/Compile/Rename.hs index 6031ab938..e81582bc9 100644 --- a/src/compiler/GF/Compile/Rename.hs +++ b/src/compiler/GF/Compile/Rename.hs @@ -125,10 +125,10 @@ tree2status o = case o of buildStatus :: SourceGrammar -> SourceModule -> Check Status buildStatus gr mo@(m,mi) = checkIn (ppLocation (msrc mi) NoLoc <> colon) $ do - let gr1 = prependModule gr mo - ops = [OSimple e | e <- allExtends gr1 m] ++ mopens mi - mods <- checkErr $ mapM (lookupModule gr1 . openedModule) ops - let sts = map modInfo2status $ zip ops mods + let gr1 = prependModule gr mo + exts = [(OSimple m,mi) | (m,mi) <- allExtends gr1 m] + ops <- checkErr $ mapM (\o -> lookupModule gr1 (openedModule o) >>= \mi -> return (o,mi)) (mopens mi) + let sts = map modInfo2status (exts++ops) return (if isModCnc mi then (emptyBinTree, reverse sts) -- the module itself does not define any names else (self2status m mi,reverse sts)) -- so the empty ident is not needed -- cgit v1.2.3