mirror of
https://github.com/python/cpython.git
synced 2025-12-04 16:43:27 +00:00
This commit is contained in:
parent
e5069019e7
commit
2e829c0214
3 changed files with 25 additions and 7 deletions
|
|
@ -624,6 +624,14 @@ def getargs(co):
|
||||||
count.append(value)
|
count.append(value)
|
||||||
elif opname == 'STORE_FAST':
|
elif opname == 'STORE_FAST':
|
||||||
stack.append(names[value])
|
stack.append(names[value])
|
||||||
|
|
||||||
|
# Special case for sublists of length 1: def foo((bar))
|
||||||
|
# doesn't generate the UNPACK_TUPLE bytecode, so if
|
||||||
|
# `remain` is empty here, we have such a sublist.
|
||||||
|
if not remain:
|
||||||
|
stack[0] = [stack[0]]
|
||||||
|
break
|
||||||
|
else:
|
||||||
remain[-1] = remain[-1] - 1
|
remain[-1] = remain[-1] - 1
|
||||||
while remain[-1] == 0:
|
while remain[-1] == 0:
|
||||||
remain.pop()
|
remain.pop()
|
||||||
|
|
|
||||||
|
|
@ -374,3 +374,11 @@ test(defaults is None, 'A.m defaults')
|
||||||
# Doc/lib/libinspect.tex claims there are 11 such functions
|
# Doc/lib/libinspect.tex claims there are 11 such functions
|
||||||
count = len(filter(lambda x:x.startswith('is'), dir(inspect)))
|
count = len(filter(lambda x:x.startswith('is'), dir(inspect)))
|
||||||
test(count == 11, "There are %d (not 11) is* functions", count)
|
test(count == 11, "There are %d (not 11) is* functions", count)
|
||||||
|
|
||||||
|
def sublistOfOne((foo)): return 1
|
||||||
|
|
||||||
|
args, varargs, varkw, defaults = inspect.getargspec(sublistOfOne)
|
||||||
|
test(args == [['foo']], 'sublistOfOne args')
|
||||||
|
test(varargs is None, 'sublistOfOne varargs')
|
||||||
|
test(varkw is None, 'sublistOfOne varkw')
|
||||||
|
test(defaults is None, 'sublistOfOn defaults')
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,8 @@ Library
|
||||||
to return a list of all doctests, and you can filter that list by
|
to return a list of all doctests, and you can filter that list by
|
||||||
any computable criteria before passing it to a DocTestRunner instance.
|
any computable criteria before passing it to a DocTestRunner instance.
|
||||||
|
|
||||||
|
- Bug #891637, patch #1005466: fix inspect.getargs() crash on def foo((bar)).
|
||||||
|
|
||||||
Tools/Demos
|
Tools/Demos
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue