mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
#4578: fix has_key() usage in compiler package.
This commit is contained in:
parent
cbc1ed5e28
commit
2d2fe572a4
5 changed files with 16 additions and 18 deletions
|
|
@ -14,13 +14,13 @@ class Set:
|
|||
def __len__(self):
|
||||
return len(self.elts)
|
||||
def __contains__(self, elt):
|
||||
return self.elts.has_key(elt)
|
||||
return elt in self.elts
|
||||
def add(self, elt):
|
||||
self.elts[elt] = elt
|
||||
def elements(self):
|
||||
return self.elts.keys()
|
||||
def has_elt(self, elt):
|
||||
return self.elts.has_key(elt)
|
||||
return elt in self.elts
|
||||
def remove(self, elt):
|
||||
del self.elts[elt]
|
||||
def copy(self):
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ def dfs_postorder(b, seen):
|
|||
order = []
|
||||
seen[b] = b
|
||||
for c in b.get_children():
|
||||
if seen.has_key(c):
|
||||
if c in seen:
|
||||
continue
|
||||
order = order + dfs_postorder(c, seen)
|
||||
order.append(b)
|
||||
|
|
@ -406,7 +406,7 @@ class PyFlowGraph(FlowGraph):
|
|||
seen = {}
|
||||
|
||||
def max_depth(b, d):
|
||||
if seen.has_key(b):
|
||||
if b in seen:
|
||||
return d
|
||||
seen[b] = 1
|
||||
d = d + depth[b]
|
||||
|
|
@ -482,7 +482,7 @@ class PyFlowGraph(FlowGraph):
|
|||
for name in self.cellvars:
|
||||
cells[name] = 1
|
||||
self.cellvars = [name for name in self.varnames
|
||||
if cells.has_key(name)]
|
||||
if name in cells]
|
||||
for name in self.cellvars:
|
||||
del cells[name]
|
||||
self.cellvars = self.cellvars + cells.keys()
|
||||
|
|
|
|||
|
|
@ -49,9 +49,9 @@ class Scope:
|
|||
|
||||
def add_global(self, 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
|
||||
if self.params.has_key(name):
|
||||
if name in self.params:
|
||||
raise SyntaxError, "%s in %s is global and parameter" % \
|
||||
(name, self.name)
|
||||
self.globals[name] = 1
|
||||
|
|
@ -88,14 +88,13 @@ class Scope:
|
|||
|
||||
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
|
||||
if self.cells.has_key(name):
|
||||
if name in self.cells:
|
||||
return SC_CELL
|
||||
if self.defs.has_key(name):
|
||||
if name in self.defs:
|
||||
return SC_LOCAL
|
||||
if self.nested and (self.frees.has_key(name) or
|
||||
self.uses.has_key(name)):
|
||||
if self.nested and (name in self.frees or name in self.uses):
|
||||
return SC_FREE
|
||||
if self.nested:
|
||||
return SC_UNKNOWN
|
||||
|
|
@ -108,8 +107,7 @@ class Scope:
|
|||
free = {}
|
||||
free.update(self.frees)
|
||||
for name in self.uses.keys():
|
||||
if not (self.defs.has_key(name) or
|
||||
self.globals.has_key(name)):
|
||||
if name not in self.defs and name not in self.globals:
|
||||
free[name] = 1
|
||||
return free.keys()
|
||||
|
||||
|
|
@ -134,7 +132,7 @@ class Scope:
|
|||
free.
|
||||
"""
|
||||
self.globals[name] = 1
|
||||
if self.frees.has_key(name):
|
||||
if name in self.frees:
|
||||
del self.frees[name]
|
||||
for child in self.children:
|
||||
if child.check_name(name) == SC_FREE:
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ def extractLineNo(ast):
|
|||
|
||||
def Node(*args):
|
||||
kind = args[0]
|
||||
if nodes.has_key(kind):
|
||||
if kind in nodes:
|
||||
try:
|
||||
return nodes[kind](*args[1:])
|
||||
except TypeError:
|
||||
|
|
@ -120,7 +120,7 @@ class Transformer:
|
|||
def transform(self, tree):
|
||||
"""Transform an AST into a modified parse tree."""
|
||||
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)
|
||||
|
||||
def parsesuite(self, text):
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ class ExampleASTVisitor(ASTVisitor):
|
|||
meth(node, *args)
|
||||
elif self.VERBOSE > 0:
|
||||
klass = node.__class__
|
||||
if not self.examples.has_key(klass):
|
||||
if klass not in self.examples:
|
||||
self.examples[klass] = klass
|
||||
print
|
||||
print self.visitor
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue