From 31424003516f89bc23165ad9c4b1e76c4212508c Mon Sep 17 00:00:00 2001 From: apense Date: Tue, 9 Jun 2015 16:21:33 -0400 Subject: [PATCH 1/2] Removed unnecessary template `-|` only used in the compiler for negative indexing --- lib/system.nim | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/system.nim b/lib/system.nim index 90587f3063..949443dd9d 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2859,9 +2859,6 @@ proc `/`*(x, y: int): float {.inline, noSideEffect.} = ## integer division that results in a float. result = toFloat(x) / toFloat(y) -template `-|`*(b, s: expr): expr = - (if b >= 0: b else: s.len + b) - template spliceImpl(s, a, L, b: expr): stmt {.immediate.} = # make room for additional elements or cut: var slen = s.len From 867b38496b234df22ab34ef15344f848278b096d Mon Sep 17 00:00:00 2001 From: apense Date: Tue, 9 Jun 2015 16:24:13 -0400 Subject: [PATCH 2/2] Moved negative indexing operator here Only used here (not in standard library) --- compiler/ast.nim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/ast.nim b/compiler/ast.nim index dc190fd7f4..f48003797a 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -948,6 +948,9 @@ proc add*(father, son: PNode) = proc `[]`*(n: PNode, i: int): PNode {.inline.} = result = n.sons[i] +template `-|`*(b, s: expr): expr = + (if b >= 0: b else: s.len + b) + # son access operators with support for negative indices template `{}`*(n: PNode, i: int): expr = n[i -| n] template `{}=`*(n: PNode, i: int, s: PNode): stmt =