diff --git a/changelogs/changelog_1_0_0.md b/changelogs/changelog_1_0_0.md index 5a9185ecb7..15da65e3d5 100644 --- a/changelogs/changelog_1_0_0.md +++ b/changelogs/changelog_1_0_0.md @@ -22,7 +22,7 @@ - We removed `unicode.Rune16` without any deprecation period as the name was wrong (see the [RFC](https://github.com/nim-lang/RFCs/issues/151) for details) - and we didn't find any usages of it in the wild. If you still need it, add this + and we didn't find any usage of it in the wild. If you still need it, add this piece of code to your project: ```nim type diff --git a/changelogs/changelog_2_0_0.md b/changelogs/changelog_2_0_0.md index 457cc62a6b..2d9db9576d 100644 --- a/changelogs/changelog_2_0_0.md +++ b/changelogs/changelog_2_0_0.md @@ -283,7 +283,7 @@ The definition of `"strictFuncs"` was changed. The old definition was roughly: "A store to a ref/ptr deref is forbidden unless it's coming from a `var T` parameter". The new definition is: "A store to a ref/ptr deref is forbidden." -This new definition is much easier to understand, the price is some expressitivity. The following code used to be +This new definition is much easier to understand, the price is some expressiveness. The following code used to be accepted: ```nim diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 4855faf736..5f33df5c7d 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -409,8 +409,12 @@ proc semArrayIndex(c: PContext, n: PNode): PType = result = makeRangeWithStaticExpr(c, e.typ.n) elif e.kind in {nkIntLit..nkUInt64Lit}: if e.intVal < 0: - localError(c.config, n.info, - "Array length can't be negative, but was " & $e.intVal) + if e.kind in {nkIntLit..nkInt64Lit}: + localError(c.config, n.info, + "Array length can't be negative, but was " & $e.intVal) + else: + localError(c.config, n.info, + "Array length can't exceed its maximum value (9223372036854775807), but was " & $cast[BiggestUInt](e.intVal)) result = makeRangeType(c, 0, e.intVal-1, n.info, e.typ) elif e.kind == nkSym and (e.typ.kind == tyStatic or e.typ.kind == tyTypeDesc): if e.typ.kind == tyStatic: