1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
discard """
targets: "c js"
"""
proc main() =
block: # bug #17485
type
O = ref object
i: int
iterator t(o: O): int =
if o != nil:
yield o.i
yield 0
proc m =
var data = ""
for i in t(nil):
data.addInt i
doAssert data == "0"
m()
block: # bug #16076
type
R = ref object
z: int
var data = ""
iterator foo(x: int; y: R = nil): int {.inline.} =
if y == nil:
yield x
else:
yield y.z
for b in foo(10):
data.addInt b
doAssert data == "10"
static: main()
main()
|