@@ -115,27 +115,28 @@ def gen(): # line -5
115
115
116
116
117
117
def generator_example ():
118
- for i in gen ():
119
- str (i )
120
- return i
118
+ x , m = gen (), {}
119
+ while m .setdefault ('i' , next (x , False )): # this prevents CPython from tracing a StopIteration once gen() ends
120
+ del m ['i' ]
121
+ return m ['i' ]
121
122
122
123
generator_example .events = [((), [(0 , 'generator_example' , 'call' , None ),
123
124
(1 , 'generator_example' , 'line' , None ),
125
+ (2 , 'generator_example' , 'line' , None ),
124
126
(- 5 , 'gen' , 'call' , None ),
125
127
(- 4 , 'gen' , 'line' , None ),
126
128
(- 4 , 'gen' , 'return' , 1 ),
129
+ (3 , 'generator_example' , 'line' , None ),
127
130
(2 , 'generator_example' , 'line' , None ),
128
- (1 , 'generator_example' , 'line' , None ),
129
131
(- 4 , 'gen' , 'call' , None ),
130
132
(- 3 , 'gen' , 'line' , None ),
131
133
(- 3 , 'gen' , 'return' , 2 ),
134
+ (3 , 'generator_example' , 'line' , None ),
132
135
(2 , 'generator_example' , 'line' , None ),
133
- (1 , 'generator_example' , 'line' , None ),
134
136
(- 3 , 'gen' , 'call' , None ),
135
137
(- 3 , 'gen' , 'return' , None ),
136
- (1 , 'generator_example' , 'exception' , StopIteration ),
137
- (3 , 'generator_example' , 'line' , None ),
138
- (3 , 'generator_example' , 'return' , 2 )])]
138
+ (4 , 'generator_example' , 'line' , None ),
139
+ (4 , 'generator_example' , 'return' , False )])]
139
140
140
141
def make_test_method (fun , name ):
141
142
def test_case (self ):
0 commit comments