Nim/tests/ccgbugs/t9286.nim
2020-12-28 14:13:21 +01:00

22 lines
404 B
Nim

discard """
action: run
"""
import options
type Foo = ref object
i: int
proc next(foo: Foo): Option[Foo] =
try: doAssert(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
doAssert foo.i == 1, $foo.i
test()