diff options
author | Araq <rumpf_a@web.de> | 2012-07-13 07:57:35 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-07-13 07:57:35 +0200 |
commit | 100596119202e7a0d543be17e5c08372fe4238cd (patch) | |
tree | ce5fc437c760840aef354c2e176f181bbd38cd8f | |
parent | 8ce1c99d0d9ff5a8539000365ec640c88098e60f (diff) | |
download | Nim-100596119202e7a0d543be17e5c08372fe4238cd.tar.gz |
proper enum constraints for system.nim
-rwxr-xr-x | lib/system.nim | 6 | ||||
-rwxr-xr-x | todo.txt | 2 |
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 |