diff --git a/compiler/renderer.nim b/compiler/renderer.nim index 1887e5a1a9..19eb45be8d 100644 --- a/compiler/renderer.nim +++ b/compiler/renderer.nim @@ -30,7 +30,7 @@ type TRenderFlags* = set[TRenderFlag] TRenderTok* = object kind*: TokType - length*: int16 + length*: int32 sym*: PSym Section = enum @@ -154,7 +154,7 @@ proc initSrcGen(renderFlags: TRenderFlags; config: ConfigRef): TSrcGen = ) proc addTok(g: var TSrcGen, kind: TokType, s: string; sym: PSym = nil) = - g.tokens.add TRenderTok(kind: kind, length: int16(s.len), sym: sym) + g.tokens.add TRenderTok(kind: kind, length: int32(s.len), sym: sym) g.buf.add(s) if kind != tkSpaces: inc g.col, s.len diff --git a/tests/vm/tmisc_vm.nim b/tests/vm/tmisc_vm.nim index 6a0c0c33fb..56f2536376 100644 --- a/tests/vm/tmisc_vm.nim +++ b/tests/vm/tmisc_vm.nim @@ -479,3 +479,10 @@ static: xxx() + +static: + var foo: string + for _ in 0 ..< 100_000: + foo.add 'a' + doAssert repr(foo).len == 100_002 +