File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -53,10 +53,15 @@ macro generator(fd)
5353 $ gt!var = $ GenTask (current_task (), Task (() -> begin
5454 try
5555 @assert current_task () === $ gt!var. iteratee
56- $ body
57- yieldto ($ gt!var. iterater, $ StopIteration ())
56+ try
57+ $ body
58+ finally
59+ yieldto ($ gt!var. iterater, $ StopIteration ())
60+ end
5861 catch e
59- Base. throwto ($ gt!var. iterater, e)
62+ if ! istaskdone ($ gt!var. iterater)
63+ Base. throwto ($ gt!var. iterater, e)
64+ end
6065 end
6166 end ))
6267 return $ gt!var
Original file line number Diff line number Diff line change 1+
2+ using PyStyleButUnidirGenerators
3+
4+ # #.
5+ @generator function organpipe (n:: Integer )
6+ i = 0
7+ while i != n
8+ i += 1
9+ @yield i
10+ end
11+ while true
12+ i -= 1
13+ i == 0 && return
14+ @yield i
15+ end
16+ end
17+
18+ # #.
19+ collect (organpipe (2 ))
You can’t perform that action at this time.
0 commit comments