Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r90252:db9d87141352
Date: 2017-02-21 11:31 +0100
http://bitbucket.org/pypy/pypy/changeset/db9d87141352/
Log: don't crash if we read less lines than co_firstlineno (it can show
up when trying to get the source of some half-builtin function in
pypy)
diff --git a/lib-python/3/inspect.py b/lib-python/3/inspect.py
--- a/lib-python/3/inspect.py
+++ b/lib-python/3/inspect.py
@@ -797,7 +797,7 @@
if iscode(object):
if not hasattr(object, 'co_firstlineno'):
raise OSError('could not find function definition')
- lnum = object.co_firstlineno - 1
+ lnum = min(object.co_firstlineno, len(lines)) - 1
pat =
re.compile(r'^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)')
while lnum > 0:
if pat.match(lines[lnum]): break
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit