blob: 0166c0f38a163d6e29d5ae93cf97af0ef2606856 (
plain) (
blame)
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
|
discard """
action: run
"""
## Tests javascript object generation
type
Kg = distinct float
Price = int
Item = object of RootObj
weight: Kg
price: Price
desc: cstring
Person = object of RootObj
name: cstring
age: int
item: Item
Test = object
name: cstring
Recurse[T] = object
data: T
next: ref Recurse[T]
var
test = Test(name: "Jorden")
sword = Item(desc: "pointy", weight: Kg(10.0),
price: Price(50))
knight = Person(name: "robert", age: 19, item: sword)
recurse4 = (ref Recurse[int])(data: 4, next: nil)
recurse3 = (ref Recurse[int])(data: 3, next: recurse4)
recurse2 = (ref Recurse[int])(data: 2, next: recurse3)
recurse1 = Recurse[int](data: 1, next: recurse2)
doAssert test.name == "Jorden"
doAssert knight.age == 19
doAssert knight.item.price == 50
doAssert recurse1.next.next.data == 3
|