mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-31 02:43:41 +00:00
object constructors work now
This commit is contained in:
41
tests/run/tobjconstr.nim
Normal file
41
tests/run/tobjconstr.nim
Normal file
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user