summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-07-13 07:57:35 +0200
committerAraq <rumpf_a@web.de>2012-07-13 07:57:35 +0200
commit100596119202e7a0d543be17e5c08372fe4238cd (patch)
treece5fc437c760840aef354c2e176f181bbd38cd8f
parent8ce1c99d0d9ff5a8539000365ec640c88098e60f (diff)
downloadNim-100596119202e7a0d543be17e5c08372fe4238cd.tar.gz
proper enum constraints for system.nim
-rwxr-xr-xlib/system.nim6
-rwxr-xr-xtodo.txt2
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/system.nim b/lib/system.nim
index 71dc063ca..ecf7b6986 100755
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -646,7 +646,7 @@ proc `-+-` *[T](x, y: set[T]): set[T] {.magic: "SymDiffSet", noSideEffect.}
   ## ``(A - B) + (B - A)``, but more efficient.
 
 # comparison operators:
-proc `==` *[T](x, y: ordinal[T]): bool {.magic: "EqEnum", noSideEffect.}
+proc `==` *[TEnum: enum](x, y: TEnum): bool {.magic: "EqEnum", noSideEffect.}
 proc `==` *(x, y: pointer): bool {.magic: "EqRef", noSideEffect.}
 proc `==` *(x, y: string): bool {.magic: "EqStr", noSideEffect.}
 proc `==` *(x, y: cstring): bool {.magic: "EqCString", noSideEffect.}
@@ -656,7 +656,7 @@ proc `==` *[T](x, y: set[T]): bool {.magic: "EqSet", noSideEffect.}
 proc `==` *[T](x, y: ref T): bool {.magic: "EqRef", noSideEffect.}
 proc `==` *[T](x, y: ptr T): bool {.magic: "EqRef", noSideEffect.}
 
-proc `<=` *[T](x, y: ordinal[T]): bool {.magic: "LeEnum", noSideEffect.}
+proc `<=` *[TEnum: enum](x, y: TEnum): bool {.magic: "LeEnum", noSideEffect.}
 proc `<=` *(x, y: string): bool {.magic: "LeStr", noSideEffect.}
 proc `<=` *(x, y: char): bool {.magic: "LeCh", noSideEffect.}
 proc `<=` *[T](x, y: set[T]): bool {.magic: "LeSet", noSideEffect.}
@@ -664,7 +664,7 @@ proc `<=` *(x, y: bool): bool {.magic: "LeB", noSideEffect.}
 proc `<=` *[T](x, y: ref T): bool {.magic: "LePtr", noSideEffect.}
 proc `<=` *(x, y: pointer): bool {.magic: "LePtr", noSideEffect.}
 
-proc `<` *[T](x, y: ordinal[T]): bool {.magic: "LtEnum", noSideEffect.}
+proc `<` *[TEnum: enum](x, y: TEnum): bool {.magic: "LtEnum", noSideEffect.}
 proc `<` *(x, y: string): bool {.magic: "LtStr", noSideEffect.}
 proc `<` *(x, y: char): bool {.magic: "LtCh", noSideEffect.}
 proc `<` *[T](x, y: set[T]): bool {.magic: "LtSet", noSideEffect.}
diff --git a/todo.txt b/todo.txt
index 1e3bd6bae..80da43c2c 100755
--- a/todo.txt
+++ b/todo.txt
@@ -1,7 +1,7 @@
 version 0.9.0
 =============
 
-- implicit ref/ptr->var conversion
+- implicit deref for parameter matching
 - deprecate ``var x, y = 0`` as it's confusing for tuple consistency
 - finish support for unsigned ints:
   - support more unsigned operations