Skip to content

Commit 14d8e26

Browse files
committed
pycodegen: LocalNameFinder: Update for Python3 ast module.
1 parent 63b670e commit 14d8e26

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

compiler/pycodegen.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
import sys
77
from io import StringIO
88

9-
from compiler import ast, parse, walk, syntax
9+
import ast
10+
from compiler import parse, walk, syntax
1011
from compiler import pyassem, misc, future, symbols
1112
from compiler.consts import SC_LOCAL, SC_GLOBAL_IMPLICIT, SC_GLOBAL_EXPLICIT, \
1213
SC_FREE, SC_CELL
@@ -155,26 +156,30 @@ def visitGlobal(self, node):
155156
for name in node.names:
156157
self.globals.add(name)
157158

158-
def visitFunction(self, node):
159+
def visitFunctionDef(self, node):
159160
self.names.add(node.name)
160161

161162
def visitLambda(self, node):
162163
pass
163164

164165
def visitImport(self, node):
165-
for name, alias in node.names:
166-
self.names.add(alias or name)
166+
for alias in node.names:
167+
self.names.add(alias.asname or alias.name)
167168

168-
def visitFrom(self, node):
169-
for name, alias in node.names:
170-
self.names.add(alias or name)
169+
def visitImportFrom(self, node):
170+
for alias in node.names:
171+
self.names.add(alias.asname or alias.name)
171172

172-
def visitClass(self, node):
173+
def visitClassDef(self, node):
173174
self.names.add(node.name)
174175

175176
def visitAssName(self, node):
176177
self.names.add(node.name)
177178

179+
def visitName(self, node):
180+
if isinstance(node.ctx, ast.Store):
181+
self.names.add(node.id)
182+
178183
def is_constant_false(node):
179184
if isinstance(node, ast.Const):
180185
if not node.value:

0 commit comments

Comments
 (0)