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 46 47 48 49 50 51 52 53 54 55 56
|
discard """
output: '''true
OK'''
cmd: "nim c --gc:arc $file"
"""
# bug #12826
type
MyObject1* = object of RootObj
z*: string
MyObject2* = object of RootObj
x*: float
name*: string
subobj: MyObject1
case flag*: bool
of false:
more: array[3, MyObject1]
of true: y*: float
var x = new(MyObject2)
doAssert x of MyObject2
doAssert x.subobj of MyObject1
doAssert x.more[2] of MyObject1
doAssert x.more[2] of RootObj
var y: MyObject2
doAssert y of MyObject2
doAssert y.subobj of MyObject1
doAssert y.more[2] of MyObject1
doAssert y.more[2] of RootObj
echo "true"
# bug #12978
type
Vector2* = object of RootObj
x*, y*: float
type
Vertex* = ref object
point*: Vector2
proc newVertex*(p: Vector2): Vertex =
return Vertex(point: p)
proc createVertex*(p: Vector2): Vertex =
result = newVertex(p)
proc p =
var x = Vector2(x: 1, y: 2)
let other = createVertex(x)
echo "OK"
p()
|