diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-12-09 10:52:19 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-12-09 10:52:19 +0000 |
| commit | 6a4218e9efebc8b037cf2410a5e07a3fb20a5069 (patch) | |
| tree | 01185ad42df649c258725d18cdea54d7809832c3 /src/GF/Devel/Compile/Rename.hs | |
| parent | b693ba103cac076bb8fe7d83a36f4fa9808321f4 (diff) | |
extend behaviour for interface and incomplete
Diffstat (limited to 'src/GF/Devel/Compile/Rename.hs')
| -rw-r--r-- | src/GF/Devel/Compile/Rename.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/GF/Devel/Compile/Rename.hs b/src/GF/Devel/Compile/Rename.hs index fe4f8175f..b6d44c7ed 100644 --- a/src/GF/Devel/Compile/Rename.hs +++ b/src/GF/Devel/Compile/Rename.hs @@ -47,12 +47,15 @@ renameSourceTerm g m t = do -} renameModule :: GF -> SourceModule -> Err SourceModule -renameModule gf sm@(name,mo) = errIn ("renaming module" +++ prt name) $ do - let gf1 = gf {gfmodules = Map.insert name mo (gfmodules gf)} - let rename = renameTerm (gf1,sm) [] - mo1 <- termOpModule rename mo - let mo2 = mo1 {mopens = [(i,i) | (_,i) <- mopens mo1]} - return (name,mo2) +renameModule gf sm@(name,mo) = case mtype mo of + MTInterface -> return sm + _ | not (isCompleteModule mo) -> return sm + _ -> errIn ("renaming module" +++ prt name) $ do + let gf1 = gf {gfmodules = Map.insert name mo (gfmodules gf)} + let rename = renameTerm (gf1,sm) [] + mo1 <- termOpModule rename mo + let mo2 = mo1 {mopens = nub [(i,i) | (_,i) <- mopens mo1]} + return (name,mo2) type RenameEnv = (GF,SourceModule) |
