1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- discard """
- output: '''(10, (20, ))
- 42
- (x: 900.0, y: 900.0)
- (x: 900.0, y: 900.0)
- (x: 900.0, y: 900.0)'''
- """
- import strutils, sequtils
- # bug #668
- type
- TThing = ref object
- data: int
- children: seq[TThing]
- proc `$`(t: TThing): string =
- result = "($1, $2)" % @[$t.data, join(map(t.children, proc(th: TThing): string = $th), ", ")]
- proc somethingelse(): seq[TThing] =
- result = @[TThing(data: 20, children: @[])]
- proc dosomething(): seq[TThing] =
- result = somethingelse()
- result = @[TThing(data: 10, children: result)]
- echo($dosomething()[0])
- # bug #9844
- proc f(v: int): int = v
- type X = object
- v: int
- var x = X(v: 42)
- x = X(v: f(x.v))
- echo x.v
- # bug #11525
- type
- Point[T] = object
- x, y: T
- proc adjustPos[T](width, height: int, pos: Point[T]): Point[T] =
- result = pos
- result = Point[T](
- x: pos.x - (width / 2),
- y: pos.y - (height / 2)
- )
- proc adjustPos2[T](width, height: int, pos: Point[T]): Point[T] =
- result = pos
- result = Point[T](
- x: result.x - (width / 2),
- y: result.y - (height / 2)
- )
- proc adjustPos3(width, height: int, pos: Point): Point =
- result = pos
- result = Point(
- x: result.x - (width / 2),
- y: result.y - (height / 2)
- )
- echo adjustPos(200, 200, Point[float](x: 1000, y: 1000))
- echo adjustPos2(200, 200, Point[float](x: 1000, y: 1000))
- echo adjustPos3(200, 200, Point[float](x: 1000, y: 1000))
|