diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-10-12 20:23:23 +0000 |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2000-10-12 20:23:23 +0000 |
commit | 4e1be72e6babf857d9f263b087dae3123ac8efe1 (patch) | |
tree | 893b3b47a6a83f4beaaa1d31636ea98a0e1a6b01 /Lib/compiler/pycodegen.py | |
parent | babe326c65a3d00c0f236628a17e39df81bcf13d (diff) | |
download | cpython-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.py | 11 |
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): |