expand the test case for bug 1049
This commit is contained in:
parent
5b32fb1791
commit
aa69a8a09f
2 changed files with 11 additions and 3 deletions
|
|
@ -225,11 +225,10 @@ proc semArrayIndex(c: PContext, n: PNode): PType =
|
||||||
elif e.kind == nkSym and e.typ.kind == tyStatic:
|
elif e.kind == nkSym and e.typ.kind == tyStatic:
|
||||||
if e.sym.ast != nil:
|
if e.sym.ast != nil:
|
||||||
return semArrayIndex(c, e.sym.ast)
|
return semArrayIndex(c, e.sym.ast)
|
||||||
internalAssert c.inGenericContext > 0
|
|
||||||
if not isOrdinalType(e.typ.lastSon):
|
if not isOrdinalType(e.typ.lastSon):
|
||||||
localError(n[1].info, errOrdinalTypeExpected)
|
localError(n[1].info, errOrdinalTypeExpected)
|
||||||
result = makeRangeWithStaticExpr(c, e)
|
result = makeRangeWithStaticExpr(c, e)
|
||||||
result.flags.incl tfUnresolved
|
if c.inGenericContext >0: result.flags.incl tfUnresolved
|
||||||
elif e.kind in nkCallKinds and hasGenericArguments(e):
|
elif e.kind in nkCallKinds and hasGenericArguments(e):
|
||||||
if not isOrdinalType(e.typ):
|
if not isOrdinalType(e.typ):
|
||||||
localError(n[1].info, errOrdinalTypeExpected)
|
localError(n[1].info, errOrdinalTypeExpected)
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ proc matrix_3*[M, N: static[int]; T](mat: Matrix[M,N,T], a: array[N, int]) = dis
|
||||||
proc matrix_4*[M, N: static[int]; T](mat: Matrix[M,N,T], a: array[N+1, int]) = discard
|
proc matrix_4*[M, N: static[int]; T](mat: Matrix[M,N,T], a: array[N+1, int]) = discard
|
||||||
|
|
||||||
var
|
var
|
||||||
tmat: TMatrix[4,4,int]
|
tmat: Matrix[4,4,int]
|
||||||
ar1: array[4, int]
|
ar1: array[4, int]
|
||||||
ar2: array[5, int]
|
ar2: array[5, int]
|
||||||
|
|
||||||
|
|
@ -74,3 +74,12 @@ matrix_2(tmat, ar2)
|
||||||
matrix_3(tmat, ar1)
|
matrix_3(tmat, ar1)
|
||||||
matrix_4(tmat, ar2)
|
matrix_4(tmat, ar2)
|
||||||
|
|
||||||
|
template reject(x): stmt =
|
||||||
|
static: assert(not compiles(x))
|
||||||
|
|
||||||
|
# test with arrays of wrong size
|
||||||
|
reject matrix_1(tmat, ar2)
|
||||||
|
reject matrix_2(tmat, ar1)
|
||||||
|
reject matrix_3(tmat, ar2)
|
||||||
|
reject matrix_4(tmat, ar1)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue