go:noinline
(_fn0 int)
| 255 | |
| 256 | //go:noinline |
| 257 | func 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 | } |
nothing calls this directly
no test coverage detected