blob: d8c0751b75fc741e88b54f49014b31487a5fbd39 (
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
39
40
41
42
|
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
|