summaryrefslogtreecommitdiff
path: root/Lib/compiler/pycodegen.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2000-10-12 20:23:23 +0000
committerJeremy Hylton <jeremy@alum.mit.edu>2000-10-12 20:23:23 +0000
commit4e1be72e6babf857d9f263b087dae3123ac8efe1 (patch)
tree893b3b47a6a83f4beaaa1d31636ea98a0e1a6b01 /Lib/compiler/pycodegen.py
parentbabe326c65a3d00c0f236628a17e39df81bcf13d (diff)
downloadcpython-git-4e1be72e6babf857d9f263b087dae3123ac8efe1.tar.gz
Fix SF bug #116263: support for from .. import *
transformer.py: return '*', None from com_import_as_name pycodegen.py: special case for name == '*' pyassem.py: fix stack counting for IMPORT_ opcodes
Diffstat (limited to 'Lib/compiler/pycodegen.py')
-rw-r--r--Lib/compiler/pycodegen.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/Lib/compiler/pycodegen.py b/Lib/compiler/pycodegen.py
index 2a1b3081c6..288872975a 100644
--- a/Lib/compiler/pycodegen.py
+++ b/Lib/compiler/pycodegen.py
@@ -439,9 +439,14 @@ class CodeGenerator:
for name, alias in node.names:
if name == '*':
self.namespace = 0
- self.emit('IMPORT_FROM', name)
- self._resolveDots(name)
- self.storeName(alias or name)
+ self.emit('IMPORT_STAR')
+ # There can only be one name w/ from ... import *
+ assert len(node.names) == 1
+ return
+ else:
+ self.emit('IMPORT_FROM', name)
+ self._resolveDots(name)
+ self.storeName(alias or name)
self.emit('POP_TOP')
def _resolveDots(self, name):