1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- discard """
- output: '''{"columns":[{"t":null},{"t":null}]}
- {"columns":[{"t":null},{"t":null}]}
- '''
- """
- ## 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 == cstring"Jorden"
- doAssert knight.age == 19
- doAssert knight.item.price == 50
- doAssert recurse1.next.next.data == 3
- # bug #6035
- proc toJson*[T](data: T): cstring {.importc: "JSON.stringify".}
- type
- Column = object
- t: ref Column
- Test2 = object
- columns: seq[Column]
- var test1 = Test2(columns: @[Column(t: nil), Column(t: nil)])
- let test2 = test1
- echo toJSON(test1)
- echo toJSON(test2)
- block issue10005:
- type
- Player = ref object of RootObj
- id*: string
- nickname*: string
- color*: string
- proc newPlayer(nickname: string, color: string): Player =
- let pl = Player(color: "#123", nickname: nickname)
- return Player(
- id: "foo",
- nickname: nickname,
- color: color,
- )
- doAssert newPlayer("foo", "#1232").nickname == "foo"
|