Kaydet (Commit) 2d2fe572 authored tarafından Georg Brandl's avatar Georg Brandl

#4578: fix has_key() usage in compiler package.

üst cbc1ed5e
...@@ -14,13 +14,13 @@ class Set: ...@@ -14,13 +14,13 @@ class Set:
def __len__(self): def __len__(self):
return len(self.elts) return len(self.elts)
def __contains__(self, elt): def __contains__(self, elt):
return self.elts.has_key(elt) return elt in self.elts
def add(self, elt): def add(self, elt):
self.elts[elt] = elt self.elts[elt] = elt
def elements(self): def elements(self):
return self.elts.keys() return self.elts.keys()
def has_elt(self, elt): def has_elt(self, elt):
return self.elts.has_key(elt) return elt in self.elts
def remove(self, elt): def remove(self, elt):
del self.elts[elt] del self.elts[elt]
def copy(self): def copy(self):
......
...@@ -210,7 +210,7 @@ def dfs_postorder(b, seen): ...@@ -210,7 +210,7 @@ def dfs_postorder(b, seen):
order = [] order = []
seen[b] = b seen[b] = b
for c in b.get_children(): for c in b.get_children():
if seen.has_key(c): if c in seen:
continue continue
order = order + dfs_postorder(c, seen) order = order + dfs_postorder(c, seen)
order.append(b) order.append(b)
...@@ -406,7 +406,7 @@ class PyFlowGraph(FlowGraph): ...@@ -406,7 +406,7 @@ class PyFlowGraph(FlowGraph):
seen = {} seen = {}
def max_depth(b, d): def max_depth(b, d):
if seen.has_key(b): if b in seen:
return d return d
seen[b] = 1 seen[b] = 1
d = d + depth[b] d = d + depth[b]
...@@ -482,7 +482,7 @@ class PyFlowGraph(FlowGraph): ...@@ -482,7 +482,7 @@ class PyFlowGraph(FlowGraph):
for name in self.cellvars: for name in self.cellvars:
cells[name] = 1 cells[name] = 1
self.cellvars = [name for name in self.varnames self.cellvars = [name for name in self.varnames
if cells.has_key(name)] if name in cells]
for name in self.cellvars: for name in self.cellvars:
del cells[name] del cells[name]
self.cellvars = self.cellvars + cells.keys() self.cellvars = self.cellvars + cells.keys()
......
...@@ -49,9 +49,9 @@ class Scope: ...@@ -49,9 +49,9 @@ class Scope:
def add_global(self, name): def add_global(self, name):
name = self.mangle(name) name = self.mangle(name)
if self.uses.has_key(name) or self.defs.has_key(name): if name in self.uses or name in self.defs:
pass # XXX warn about global following def/use pass # XXX warn about global following def/use
if self.params.has_key(name): if name in self.params:
raise SyntaxError, "%s in %s is global and parameter" % \ raise SyntaxError, "%s in %s is global and parameter" % \
(name, self.name) (name, self.name)
self.globals[name] = 1 self.globals[name] = 1
...@@ -88,14 +88,13 @@ class Scope: ...@@ -88,14 +88,13 @@ class Scope:
The scope of a name could be LOCAL, GLOBAL, FREE, or CELL. The scope of a name could be LOCAL, GLOBAL, FREE, or CELL.
""" """
if self.globals.has_key(name): if name in self.globals:
return SC_GLOBAL return SC_GLOBAL
if self.cells.has_key(name): if name in self.cells:
return SC_CELL return SC_CELL
if self.defs.has_key(name): if name in self.defs:
return SC_LOCAL return SC_LOCAL
if self.nested and (self.frees.has_key(name) or if self.nested and (name in self.frees or name in self.uses):
self.uses.has_key(name)):
return SC_FREE return SC_FREE
if self.nested: if self.nested:
return SC_UNKNOWN return SC_UNKNOWN
...@@ -108,8 +107,7 @@ class Scope: ...@@ -108,8 +107,7 @@ class Scope:
free = {} free = {}
free.update(self.frees) free.update(self.frees)
for name in self.uses.keys(): for name in self.uses.keys():
if not (self.defs.has_key(name) or if name not in self.defs and name not in self.globals:
self.globals.has_key(name)):
free[name] = 1 free[name] = 1
return free.keys() return free.keys()
...@@ -134,7 +132,7 @@ class Scope: ...@@ -134,7 +132,7 @@ class Scope:
free. free.
""" """
self.globals[name] = 1 self.globals[name] = 1
if self.frees.has_key(name): if name in self.frees:
del self.frees[name] del self.frees[name]
for child in self.children: for child in self.children:
if child.check_name(name) == SC_FREE: if child.check_name(name) == SC_FREE:
......
...@@ -81,7 +81,7 @@ def extractLineNo(ast): ...@@ -81,7 +81,7 @@ def extractLineNo(ast):
def Node(*args): def Node(*args):
kind = args[0] kind = args[0]
if nodes.has_key(kind): if kind in nodes:
try: try:
return nodes[kind](*args[1:]) return nodes[kind](*args[1:])
except TypeError: except TypeError:
...@@ -120,7 +120,7 @@ class Transformer: ...@@ -120,7 +120,7 @@ class Transformer:
def transform(self, tree): def transform(self, tree):
"""Transform an AST into a modified parse tree.""" """Transform an AST into a modified parse tree."""
if not (isinstance(tree, tuple) or isinstance(tree, list)): if not (isinstance(tree, tuple) or isinstance(tree, list)):
tree = parser.ast2tuple(tree, line_info=1) tree = parser.st2tuple(tree, line_info=1)
return self.compile_node(tree) return self.compile_node(tree)
def parsesuite(self, text): def parsesuite(self, text):
......
...@@ -84,7 +84,7 @@ class ExampleASTVisitor(ASTVisitor): ...@@ -84,7 +84,7 @@ class ExampleASTVisitor(ASTVisitor):
meth(node, *args) meth(node, *args)
elif self.VERBOSE > 0: elif self.VERBOSE > 0:
klass = node.__class__ klass = node.__class__
if not self.examples.has_key(klass): if klass not in self.examples:
self.examples[klass] = klass self.examples[klass] = klass
print print
print self.visitor print self.visitor
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment