diff options
author | Araq <rumpf_a@web.de> | 2015-09-12 10:55:28 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-09-12 10:55:28 +0200 |
commit | 8ef66b973d86a75c8dfa4c6761d322d94c54efad (patch) | |
tree | 1a90abf710018b92cc8d92538ae1095e6e41b006 /lib/system.nim | |
parent | 2a797c362a1c70d708eb21a18a227296dcac71a4 (diff) | |
download | Nim-8ef66b973d86a75c8dfa4c6761d322d94c54efad.tar.gz |
first attempt to fix 'a[i]' handling in generics
Diffstat (limited to 'lib/system.nim')
-rw-r--r-- | lib/system.nim | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim index 1890ce5be..cd94cfeaf 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -239,6 +239,14 @@ type seq*{.magic: "Seq".}[T] ## Generic type to construct sequences. set*{.magic: "Set".}[T] ## Generic type to construct bit sets. +when defined(nimArrIdx): + # :array|openarray|string|seq|cstring|tuple + proc `[]`*[I: Ordinal;T](a: T; i: I): T {. + noSideEffect, magic: "ArrGet".} + proc `[]=`*[I: Ordinal;T,S](a: var T; i: I; + x: S) {.noSideEffect, magic: "ArrPut".} + proc `=`*[T](dest: var T; src: T) {.noSideEffect, magic: "Asgn".} + type Slice*[T] = object ## builtin slice type a*, b*: T ## the bounds |