MCPcopy Index your code
hub / github.com/dispatchrun/coroutine / FizzBuzzIfGenerator

Function FizzBuzzIfGenerator

compiler/testdata/coroutine_durable.go:257–315  ·  view source on GitHub ↗

go:noinline

(_fn0 int)

Source from the content-addressed store, hash-verified

255
256//go:noinline
257func FizzBuzzIfGenerator(_fn0 int) {
258 _c := coroutine.LoadContext[int, any]()
259 var _f0 *struct {
260 IP int
261 X0 int
262 X1 int
263 X2 int
264 } = coroutine.Push[struct {
265 IP int
266 X0 int
267 X1 int
268 X2 int
269 }](&_c.Stack)
270 if _f0.IP == 0 {
271 *_f0 = struct {
272 IP int
273 X0 int
274 X1 int
275 X2 int
276 }{X0: _fn0}
277 }
278 defer func() {
279 if !_c.Unwinding() {
280 coroutine.Pop(&_c.Stack)
281 }
282 }()
283 switch {
284 case _f0.IP < 2:
285 _f0.X1 = 1
286 _f0.IP = 2
287 fallthrough
288 case _f0.IP < 7:
289 for ; _f0.X1 <= _f0.X0; _f0.X1, _f0.IP = _f0.X1+1, 2 {
290 if _f0.X1%
291 3 == 0 && _f0.X1%5 == 0 {
292 coroutine.Yield[int, any](FizzBuzz)
293 } else {
294 if _f0.X1%
295 3 == 0 {
296 coroutine.Yield[int, any](Fizz)
297 } else {
298 switch {
299 case _f0.IP < 5:
300 _f0.X2 = _f0.X1 % 5
301 _f0.IP = 5
302 fallthrough
303 case _f0.IP < 7:
304 if _f0.X2 == 0 {
305 coroutine.Yield[int, any](Buzz)
306 } else {
307
308 coroutine.Yield[int, any](_f0.X1)
309 }
310 }
311 }
312 }
313 }
314 }

Callers

nothing calls this directly

Calls 3

LoadContextFunction · 0.92
PopFunction · 0.92
UnwindingMethod · 0.80

Tested by

no test coverage detected