diff options
author | Araq <rumpf_a@web.de> | 2015-04-21 11:55:55 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-04-22 12:04:09 +0200 |
commit | aacaa8f171cdddcf6051f9864a53a2d9e2dd3601 (patch) | |
tree | dfa39a61b4bc31843d3b63f33df6c352905f426b /lib | |
parent | c69d74818eb823c47bfc2f6dae6a4742517a0962 (diff) | |
download | Nim-aacaa8f171cdddcf6051f9864a53a2d9e2dd3601.tar.gz |
cleaned up some magics to make room for new magics; added '..<' and '..^' templates
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system.nim | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/system.nim b/lib/system.nim index ac6c3a38f..25475c75b 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -663,7 +663,7 @@ proc `+` *(x: int): int {.magic: "UnaryPlusI", noSideEffect.} proc `+` *(x: int8): int8 {.magic: "UnaryPlusI", noSideEffect.} proc `+` *(x: int16): int16 {.magic: "UnaryPlusI", noSideEffect.} proc `+` *(x: int32): int32 {.magic: "UnaryPlusI", noSideEffect.} -proc `+` *(x: int64): int64 {.magic: "UnaryPlusI64", noSideEffect.} +proc `+` *(x: int64): int64 {.magic: "UnaryPlusI", noSideEffect.} ## Unary `+` operator for an integer. Has no effect. proc `-` *(x: int): int {.magic: "UnaryMinusI", noSideEffect.} @@ -1638,7 +1638,7 @@ proc min*(x, y: int16): int16 {.magic: "MinI", noSideEffect.} = if x <= y: x else: y proc min*(x, y: int32): int32 {.magic: "MinI", noSideEffect.} = if x <= y: x else: y -proc min*(x, y: int64): int64 {.magic: "MinI64", noSideEffect.} = +proc min*(x, y: int64): int64 {.magic: "MinI", noSideEffect.} = ## The minimum value of two integers. if x <= y: x else: y @@ -1656,7 +1656,7 @@ proc max*(x, y: int16): int16 {.magic: "MaxI", noSideEffect.} = if y <= x: x else: y proc max*(x, y: int32): int32 {.magic: "MaxI", noSideEffect.} = if y <= x: x else: y -proc max*(x, y: int64): int64 {.magic: "MaxI64", noSideEffect.} = +proc max*(x, y: int64): int64 {.magic: "MaxI", noSideEffect.} = ## The maximum value of two integers. if y <= x: x else: y @@ -3256,4 +3256,14 @@ proc `^`*(x: int): int {.noSideEffect, magic: "Roof".} = ## overloaded ``[]`` or ``[]=`` accessors. discard +template `..^`*(a, b: expr): expr = + ## a shortcut for '.. ^' to avoid the common gotcha that a space between + ## '..' and '^' is required. + a .. ^b + +template `..<`*(a, b: expr): expr = + ## a shortcut for '.. <' to avoid the common gotcha that a space between + ## '..' and '<' is required. + a .. <b + {.pop.} #{.push warning[GcMem]: off.} |