diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-02 07:33:46 (GMT) |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-02 07:33:46 (GMT) |
| commit | 7344285c1919e5ade8016a83a3ee02fd637a030d (patch) | |
| tree | f5ac9aea45f055c175d1c462f63eb4fb341830b0 /Lib | |
| parent | 8f0f2056499847999fffa7af7a8872500a191203 (diff) | |
| download | cpython-7344285c1919e5ade8016a83a3ee02fd637a030d.zip cpython-7344285c1919e5ade8016a83a3ee02fd637a030d.tar.gz cpython-7344285c1919e5ade8016a83a3ee02fd637a030d.tar.bz2 | |
Issue #28257: Improved error message when pass a non-iterable as
a var-positional argument. Added opcode BUILD_TUPLE_UNPACK_WITH_CALL.
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/importlib/_bootstrap_external.py | 3 | ||||
| -rw-r--r-- | Lib/opcode.py | 5 | ||||
| -rw-r--r-- | Lib/test/test_extcall.py | 10 |
3 files changed, 15 insertions, 3 deletions
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index bfb89da..5cb58ab 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -238,6 +238,7 @@ _code_type = type(_write_atomic.__code__) # #27985) # Python 3.6b1 3376 (simplify CALL_FUNCTIONs & BUILD_MAP_UNPACK_WITH_CALL) # Python 3.6b1 3377 (set __class__ cell from type.__new__ #23722) +# Python 3.6b2 3378 (add BUILD_TUPLE_UNPACK_WITH_CALL #28257) # # MAGIC must change whenever the bytecode emitted by the compiler may no # longer be understood by older implementations of the eval loop (usually @@ -246,7 +247,7 @@ _code_type = type(_write_atomic.__code__) # Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array # in PC/launcher.c must also be updated. -MAGIC_NUMBER = (3377).to_bytes(2, 'little') + b'\r\n' +MAGIC_NUMBER = (3378).to_bytes(2, 'little') + b'\r\n' _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c _PYCACHE = '__pycache__' diff --git a/Lib/opcode.py b/Lib/opcode.py index be26475..b5916b6 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -196,8 +196,6 @@ def_op('MAP_ADD', 147) def_op('LOAD_CLASSDEREF', 148) hasfree.append(148) -jrel_op('SETUP_ASYNC_WITH', 154) - def_op('EXTENDED_ARG', 144) EXTENDED_ARG = 144 @@ -207,8 +205,11 @@ def_op('BUILD_MAP_UNPACK_WITH_CALL', 151) def_op('BUILD_TUPLE_UNPACK', 152) def_op('BUILD_SET_UNPACK', 153) +jrel_op('SETUP_ASYNC_WITH', 154) + def_op('FORMAT_VALUE', 155) def_op('BUILD_CONST_KEY_MAP', 156) def_op('BUILD_STRING', 157) +def_op('BUILD_TUPLE_UNPACK_WITH_CALL', 158) del def_op, name_op, jrel_op, jabs_op diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py index 5eea379..96f3ede 100644 --- a/Lib/test/test_extcall.py +++ b/Lib/test/test_extcall.py @@ -233,6 +233,16 @@ What about willful misconduct? ... TypeError: h() argument after * must be an iterable, not function + >>> h(1, *h) + Traceback (most recent call last): + ... + TypeError: h() argument after * must be an iterable, not function + + >>> h(*[1], *h) + Traceback (most recent call last): + ... + TypeError: h() argument after * must be an iterable, not function + >>> dir(*h) Traceback (most recent call last): ... |
