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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
discard """
action: "compile"
"""
# https://github.com/nim-lang/Nim/issues/20348
type
Payload[T] = object
payload: T
Carrier[T] = object
val: T
type
Payload0*[T] = object
payload: Payload[T]
Payload1*[T] = object
payload: Payload[T]
Payload2*[T] = object
payload: Payload[T]
Payload3*[T] = object
payload: Payload[T]
Payload4*[T] = object
payload: Payload[T]
Payload5*[T] = object
payload: Payload[T]
Payload6*[T] = object
payload: Payload[T]
Payload7*[T] = object
payload: Payload[T]
Payload8*[T] = object
payload: Payload[T]
Payload9*[T] = object
payload: Payload[T]
Payload10*[T] = object
payload: Payload[T]
Payload11*[T] = object
payload: Payload[T]
Payload12*[T] = object
payload: Payload[T]
Payload13*[T] = object
payload: Payload[T]
Payload14*[T] = object
payload: Payload[T]
Payload15*[T] = object
payload: Payload[T]
Payload16*[T] = object
payload: Payload[T]
Payload17*[T] = object
payload: Payload[T]
Payload18*[T] = object
payload: Payload[T]
Payload19*[T] = object
payload: Payload[T]
Payload20*[T] = object
payload: Payload[T]
Payload21*[T] = object
payload: Payload[T]
Payload22*[T] = object
payload: Payload[T]
Payload23*[T] = object
payload: Payload[T]
Payload24*[T] = object
payload: Payload[T]
Payload25*[T] = object
payload: Payload[T]
Payload26*[T] = object
payload: Payload[T]
Payload27*[T] = object
payload: Payload[T]
Payload28*[T] = object
payload: Payload[T]
Payload29*[T] = object
payload: Payload[T]
Payload30*[T] = object
payload: Payload[T]
Payload31*[T] = object
payload: Payload[T]
Payload32*[T] = object
payload: Payload[T]
Payload33*[T] = object
payload: Payload[T]
type
Carriers*[T] = object
c0*: Carrier[Payload0[T]]
c1*: Carrier[Payload1[T]]
c2*: Carrier[Payload2[T]]
c3*: Carrier[Payload3[T]]
c4*: Carrier[Payload4[T]]
c5*: Carrier[Payload5[T]]
c6*: Carrier[Payload6[T]]
c7*: Carrier[Payload7[T]]
c8*: Carrier[Payload8[T]]
c9*: Carrier[Payload9[T]]
c10*: Carrier[Payload10[T]]
c11*: Carrier[Payload11[T]]
c12*: Carrier[Payload12[T]]
c13*: Carrier[Payload13[T]]
c14*: Carrier[Payload14[T]]
c15*: Carrier[Payload15[T]]
c16*: Carrier[Payload16[T]]
c17*: Carrier[Payload17[T]]
c18*: Carrier[Payload18[T]]
c19*: Carrier[Payload19[T]]
c20*: Carrier[Payload20[T]]
c21*: Carrier[Payload21[T]]
c22*: Carrier[Payload22[T]]
c23*: Carrier[Payload23[T]]
c24*: Carrier[Payload24[T]]
c25*: Carrier[Payload25[T]]
c26*: Carrier[Payload26[T]]
c27*: Carrier[Payload27[T]]
c28*: Carrier[Payload28[T]]
c29*: Carrier[Payload29[T]]
c30*: Carrier[Payload30[T]]
c31*: Carrier[Payload31[T]]
c32*: Carrier[Payload32[T]]
c33*: Carrier[Payload33[T]]
var carriers : Carriers[int]
static:
assert $(typeof(carriers.c33.val)) == "Payload33[system.int]"
|