diff options
-rw-r--r-- | lib/system.nim | 3 | ||||
-rw-r--r-- | tests/sets/tsets.nim | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim index 3db7d93f1..e24117670 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -1111,6 +1111,9 @@ proc card*[T](x: set[T]): int {.magic: "Card", noSideEffect.} ## var a = {1, 3, 5, 7} ## echo card(a) # => 4 +proc len*[T](x: set[T]): int {.magic: "Card", noSideEffect.} + ## An alias for `card(x)`. + proc ord*[T: Ordinal|enum](x: T): int {.magic: "Ord", noSideEffect.} ## Returns the internal `int` value of an ordinal value ``x``. ## diff --git a/tests/sets/tsets.nim b/tests/sets/tsets.nim index e68007d32..dbbeed543 100644 --- a/tests/sets/tsets.nim +++ b/tests/sets/tsets.nim @@ -207,6 +207,10 @@ echo warnUninit in gNotes doAssert {-1.int8, -2, -2}.card == 2 doAssert {1, 2, 2, 3..5, 4..6}.card == 6 +# merely test the alias +doAssert {-1.int8, -2, -2}.len == 2 +doAssert {1, 2, 2, 3..5, 4..6}.len == 6 + type Foo = enum Foo1 = 0 Foo2 = 1 |