summaryrefslogtreecommitdiff
path: root/coverage/pytracer.py
diff options
context:
space:
mode:
Diffstat (limited to 'coverage/pytracer.py')
-rw-r--r--coverage/pytracer.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/coverage/pytracer.py b/coverage/pytracer.py
index cdb3ae70..47432324 100644
--- a/coverage/pytracer.py
+++ b/coverage/pytracer.py
@@ -92,9 +92,12 @@ class PyTracer(object):
self.cur_file_dict = self.data[tracename]
# The call event is really a "start frame" event, and happens for
# function calls and re-entering generators. The f_lasti field is
- # -1 for calls, and a real offset for generators. Use -1 as the
+ # -1 for calls, and a real offset for generators. Use <0 as the
# line number for calls, and the real line number for generators.
- self.last_line = -1 if (frame.f_lasti < 0) else frame.f_lineno
+ if frame.f_lasti < 0:
+ self.last_line = -frame.f_code.co_firstlineno
+ else:
+ self.last_line = frame.f_lineno
elif event == 'line':
# Record an executed line.
if self.cur_file_dict is not None: