summary refs log tree commit diff stats
path: root/tests/objects/tobjconstr2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/objects/tobjconstr2.nim')
-rw-r--r--tests/objects/tobjconstr2.nim57
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()