diff options
Diffstat (limited to 'tests/objects/tobjconstr2.nim')
-rw-r--r-- | tests/objects/tobjconstr2.nim | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/objects/tobjconstr2.nim b/tests/objects/tobjconstr2.nim new file mode 100644 index 000000000..cf4a694b4 --- /dev/null +++ b/tests/objects/tobjconstr2.nim @@ -0,0 +1,57 @@ +discard """ + output: '''42 +Foo''' +""" + +type TFoo{.exportc.} = object + x:int + +var s{.exportc.}: seq[TFoo] = @[] + +s.add TFoo(x: 42) + +echo s[0].x + + +# bug #563 +type + Foo {.inheritable.} = + object + x: int + + Bar = + object of Foo + y: int + +var a = Bar(y: 100, x: 200) # works +var b = Bar(x: 100, y: 200) # used to fail + +# bug 1275 + +type + Graphic = object of RootObj + case kind: range[0..1] + of 0: + radius: float + of 1: + size: tuple[w, h: float] + +var d = Graphic(kind: 1, size: (12.9, 6.9)) + +# bug #1274 +type + K = enum Koo, Kar + Graphic2 = object of RootObj + case kind: K + of Koo: + radius: float + of Kar: + size: tuple[w, h: float] + +type NamedGraphic = object of Graphic2 + name: string + +var ngr = NamedGraphic(kind: Koo, radius: 6.9, name: "Foo") +echo ngr.name + +GC_fullCollect() |