12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- discard """
- output: '''1
- a
- 13'''
- """
- # bug #5621 #5615
- type
- Obj5[T] = ref object of RootObj
- x_impl: T
- proc x[T](v476205: Obj5[T]): T {.used.} =
- v476205.x_impl
- type
- Obj6[T, U] = ref object of Obj5[T]
- y_impl: U
- proc newObj6[T, U](x: T; y: U): Obj6[T, U] =
- new(result)
- result.x_impl = x
- result.y_impl = y
- proc x[T, U](v477606: Obj6[T, U]): T {.used.} =
- v477606.x_impl
- proc y[T, U](v477608: Obj6[T, U]): U {.used.} =
- v477608.y_impl
- let e = newObj6(1, "a")
- echo e.x
- echo e.y
- type
- Fruit[T] = ref object of RootObj
- Apple[T] = ref object of Fruit[T]
- proc getColor[T](v: Fruit[T]): T = 13
- var w: Apple[int]
- let r = getColor(w)
- echo r
|