diff options
author | Araq <rumpf_a@web.de> | 2013-03-08 01:19:47 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-03-08 01:19:47 +0100 |
commit | 2b4922aea0350c3a225619e7e10b74de95bfc2b7 (patch) | |
tree | eda6ddc92fae0dbfdba507f21d7b594c6e71f15a /tests | |
parent | 296e7c9f40a69958579fd8169ddc38cf0a72730c (diff) | |
download | Nim-2b4922aea0350c3a225619e7e10b74de95bfc2b7.tar.gz |
object constructors work now
Diffstat (limited to 'tests')
-rw-r--r-- | tests/run/tobjconstr.nim | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/run/tobjconstr.nim b/tests/run/tobjconstr.nim new file mode 100644 index 000000000..3bd785728 --- /dev/null +++ b/tests/run/tobjconstr.nim @@ -0,0 +1,41 @@ +discard """ + output: '''(k: kindA, a: (x: abc, z: [1, 1, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 2, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 3, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 4, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 5, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 6, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 7, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 8, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 9, 3]), empty: ()) +(k: kindA, a: (x: abc, z: [1, 10, 3]), empty: ())''' +""" + +type + TArg = object + x: string + z: seq[int] + TKind = enum kindXY, kindA + TEmpty = object + TDummy = ref object + case k: TKind + of kindXY: x, y: int + of kindA: + a: TArg + empty: TEmpty + +proc `$`[T](s: seq[T]): string = + # XXX why is that not in the stdlib? + result = "[" + for i, x in s: + if i > 0: result.add(", ") + result.add($x) + result.add("]") + +proc main() = + for i in 1..10: + let d = TDummy(k: kindA, a: TArg(x: "abc", z: @[1,i,3]), empty: TEmpty()) + echo d[] + +main() + |