summary refs log tree commit diff stats
path: root/tests/generics/tgenericdefaults.nim
blob: ad96f185130785a6f8aac7a3c3f5997533eb430a (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
type 
  TFoo[T, U, R = int] = object
    x: T
    y: U
    z: R

  TBar[T] = TFoo[T, array[4, T], T]

var x1: TFoo[int, float]

static:
  assert type(x1.x) is int
  assert type(x1.y) is float
  assert type(x1.z) is int
  
var x2: TFoo[string, R = float, U = seq[int]]

static:
  assert type(x2.x) is string
  assert type(x2.y) is seq[int]
  assert type(x2.z) is float

var x3: TBar[float]

static:
  assert type(x3.x) is float
  assert type(x3.y) is array[4, float]
  assert type(x3.z) is float