This commit is contained in:
Araq
2018-02-10 14:09:04 +01:00
parent 7b2b0ebf7f
commit 5c5e54d3a9
2 changed files with 21 additions and 1 deletions

View File

@@ -288,7 +288,9 @@ proc semArray(c: PContext, n: PNode, prev: PType): PType =
var indxB = indx
if indxB.kind in {tyGenericInst, tyAlias, tySink}: indxB = lastSon(indxB)
if indxB.kind notin {tyGenericParam, tyStatic, tyFromExpr}:
if not isOrdinalType(indxB):
if indxB.skipTypes({tyRange}).kind in {tyUInt, tyUInt64}:
discard
elif not isOrdinalType(indxB):
localError(n.sons[1].info, errOrdinalTypeExpected)
elif enumHasHoles(indxB):
localError(n.sons[1].info, errEnumXHasHoles,

View File

@@ -1,3 +1,8 @@
discard """
output: '''0
0'''
"""
# test another strange bug ... (I hate this compiler; it is much too buggy!)
proc putEnv(key, val: string) =
@@ -11,3 +16,16 @@ proc putEnv(key, val: string) =
env[len(key)] = '='
for i in 0..len(val)-1:
env[len(key)+1+i] = val[i]
# bug #7153
const
UnsignedConst = 1024'u
type
SomeObject* = object
s1: array[UnsignedConst, uint32]
var
obj: SomeObject
echo obj.s1[0]
echo obj.s1[0u]