[ret rid of seperate subtable and errortable in favor of unified namemap
John Meacham <john@repetae.net>**20100806032455
 Ignore-this: 9e8fbd31f988d77614bd49fc23cefae
] hunk ./src/FrontEnd/Rename.hs 84
+    let cn k (Right x) (Right y) | x /= y = Left $ ambig k [x,y]
+        cn _ _ x@Left {} = x
+        cn _ x _ = x
hunk ./src/FrontEnd/Rename.hs 88
+    --local ( \e -> e { envNameMap = Map.unionWithKey cn (Map.map Right (fromList nmap)) (envNameMap e) }) action
hunk ./src/FrontEnd/Rename.hs 106
-    subTable = fromList [ (x,y) | (x,[y]) <- ns]
hunk ./src/FrontEnd/Rename.hs 109
-    ns' = map fn ns
-    fn (n,ns) = (fromName n, map nameName ns)
-
-    errorTab =  fromList [ (x,ambig x ys) | ((typ,x),ys@(_:_:_)) <- ns' ]
hunk ./src/FrontEnd/Rename.hs 112
-        envSubTable    = subTable,
-        errorTable     = errorTab,
hunk ./src/FrontEnd/Rename.hs 129
-withSubTable st action = local ( \e -> e { envSubTable = st `union` envSubTable e }) action
+withSubTable st action = local ( \e -> e { envNameMap = Map.map Right st `union` envNameMap e }) action
hunk ./src/FrontEnd/Rename.hs 382
-        subTable <- asks envSubTable
hunk ./src/FrontEnd/Rename.hs 384
-        stuff' <- sequence [ do ns' <- mapM renameName (map (toName FieldLabel) ns); t' <- withSubTable subTable $ rename t; return (ns',t')  |  (ns,t) <- stuff]
+        stuff' <- sequence [ do ns' <- mapM renameName (map (toName FieldLabel) ns); t' <- rename t; return (ns',t')  |  (ns,t) <- stuff]
hunk ./src/FrontEnd/Rename.hs 684
+    | Just _ <- V.fromTupname hsName = return hsName
hunk ./src/FrontEnd/Rename.hs 686
-    subTable <- asks envSubTable
+    subTable <- asks envNameMap
hunk ./src/FrontEnd/Rename.hs 688
-        Just name@(getModule -> Just _) -> return name
-        Just _ -> error "renameHsName"
-        Nothing
-            | Just n <- V.fromTupname hsName -> return hsName
-            | otherwise -> do
-                sl <- getSrcLoc
-                et <- asks errorTable
-                let err = case mlookup hsName et of {
-                    Just s -> s;
-                    Nothing -> "Unknown name: " ++ show hsName }
-                warn sl "undefined-name" err
-                -- e <- createError ("Undefined Name: " ++ show hsName)
-                return $ hsName
-                --return (Qual modName name)
+        Just (Right name) -> return name
+        Just (Left err) -> do
+            sl <- getSrcLoc
+            warn sl "undefined-name" err
+            return hsName
+        Nothing -> do
+            sl <- getSrcLoc
+            let err = "Unknown name: " ++ show hsName
+            warn sl "undefined-name" err
+            return hsName
+