From 4296bddccb8da3d37b4bb8c3a1f704c3377a750f Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 6 Jun 2019 07:56:19 +0200 Subject: [PATCH] fixes #11412 --- compiler/ccgcalls.nim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/ccgcalls.nim b/compiler/ccgcalls.nim index bea43b296..b13e00320 100644 --- a/compiler/ccgcalls.nim +++ b/compiler/ccgcalls.nim @@ -389,7 +389,7 @@ proc genPatternCall(p: BProc; ri: PNode; pat: string; typ: PType): Rope = result.add genOtherArg(p, ri, k, typ) inc i of '#': - if pat[i+1] in {'+', '@'}: + if i+1 < pat.len and pat[i+1] in {'+', '@'}: let ri = ri[j] if ri.kind in nkCallKinds: let typ = skipTypes(ri.sons[0].typ, abstractInst) @@ -404,10 +404,10 @@ proc genPatternCall(p: BProc; ri: PNode; pat: string; typ: PType): Rope = else: localError(p.config, ri.info, "call expression expected for C++ pattern") inc i - elif pat[i+1] == '.': + elif i+1 < pat.len and pat[i+1] == '.': result.add genThisArg(p, ri, j, typ) inc i - elif pat[i+1] == '[': + elif i+1 < pat.len and pat[i+1] == '[': var arg = ri.sons[j].skipAddrDeref while arg.kind in {nkAddr, nkHiddenAddr, nkObjDownConv}: arg = arg[0] result.add genArgNoParam(p, arg)