Nim/tests/ccgbugs/t9286.nim
LemonBoy 7775b7efd1 Fix wrong heuristic in codegen (#9293)
A bare return may trigger the insertion of a genericReset.

Fixes #9286
2018-10-11 08:36:05 +02:00

22 lines
400 B
Nim

discard """
action: run
"""
import options
type Foo = ref object
i: int
proc next(foo: Foo): Option[Foo] =
try: assert(foo.i == 0)
except: return # 2º: none
return some(foo) # 1º: some
proc test =
let foo = Foo()
var opt = next(foo) # 1º Some
while isSome(opt) and foo.i < 10:
inc(foo.i)
opt = next(foo) # 2º None
assert foo.i == 1, $foo.i
test()