Files
Nim/tests/generics/t1789.nim
Adam Strzelecki e80465dacf tests: Trim .nim files trailing whitespace
via OSX: find . -name '*.nim' -exec sed -i '' -E 's/[[:space:]]+$//' {} +
2015-09-04 23:04:32 +02:00

45 lines
744 B
Nim

discard """
output: "3\n0"
"""
# https://github.com/Araq/Nim/issues/1789
type
Foo[N: static[int]] = object
proc bindStaticN[N](foo: Foo[N]) =
var ar0: array[3, int]
var ar1: array[N, int]
var ar2: array[1..N, int]
var ar3: array[0..(N+10), float]
echo N
var f: Foo[3]
f.bindStaticN
# case 2
type
ObjectWithStatic[X, Y: static[int], T] = object
bar: array[X * Y, T] # this one works
AliasWithStatic[X, Y: static[int], T] = array[X * Y, T]
var
x: ObjectWithStatic[1, 2, int]
y: AliasWithStatic[2, 3, int]
# case 3
type
Bar[N: static[int], T] = object
bar: array[N, T]
proc `[]`*[N, T](f: Bar[N, T], n: range[0..(N - 1)]): T =
assert high(n) == N-1
result = f.bar[n]
var b: Bar[3, int]
echo b[2]