set[T].len is an alias for set[T].card (#11885) [feature]

This commit is contained in:
Andy Davidoff 2019-08-05 08:27:45 -04:00 • committed by Andreas Rumpf
commit d208d7a995
2 changed files with 7 additions and 0 deletions

View file

@ -1111,6 +1111,9 @@ proc card*[T](x: set[T]): int {.magic: "Card", noSideEffect.}
## var a = {1, 3, 5, 7} ## var a = {1, 3, 5, 7}
## echo card(a) # => 4 ## 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.} proc ord*[T: Ordinal|enum](x: T): int {.magic: "Ord", noSideEffect.}
## Returns the internal `int` value of an ordinal value ``x``. ## Returns the internal `int` value of an ordinal value ``x``.
## ##

View file

@ -207,6 +207,10 @@ echo warnUninit in gNotes
doAssert {-1.int8, -2, -2}.card == 2 doAssert {-1.int8, -2, -2}.card == 2
doAssert {1, 2, 2, 3..5, 4..6}.card == 6 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 type Foo = enum
Foo1 = 0 Foo1 = 0
Foo2 = 1 Foo2 = 1