Make sure the docstring is always entered as the first element in the
consts, even if it is None.

Simplify _lookupName() by removing lots of redundant tests.
diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py
index 9f9e904..43bf6f4 100644
--- a/Lib/compiler/pyassem.py
+++ b/Lib/compiler/pyassem.py
@@ -254,7 +254,6 @@
 
     def setDocstring(self, doc):
         self.docstring = doc
-        self.consts.insert(0, doc)
 
     def setFlag(self, flag):
         self.flags = self.flags | flag
@@ -335,6 +334,7 @@
     def convertArgs(self):
         """Convert arguments from symbolic to concrete form"""
         assert self.stage == FLAT
+        self.consts.insert(0, self.docstring)
         for i in range(len(self.insts)):
             t = self.insts[i]
             if len(t) == 2:
@@ -347,21 +347,11 @@
 
     def _lookupName(self, name, list):
         """Return index of name in list, appending if necessary"""
-        found = None
         t = type(name)
         for i in range(len(list)):
             # must do a comparison on type first to prevent UnicodeErrors 
             if t == type(list[i]) and list[i] == name:
-                found = 1
-                break
-        if found:
-            # this is cheap, but incorrect in some cases, e.g 2 vs. 2L
-            if type(name) == type(list[i]):
                 return i
-            for i in range(len(list)):
-                elt = list[i]
-                if type(elt) == type(name) and elt == name:
-                    return i
         end = len(list)
         list.append(name)
         return end