diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/sets_fragment.txt | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/doc/sets_fragment.txt b/doc/sets_fragment.txt index fba98db2d..6e0991a9e 100644 --- a/doc/sets_fragment.txt +++ b/doc/sets_fragment.txt @@ -5,10 +5,13 @@ only be an ordinal type of a certain size, namely: * `uint8`/`byte`-`uint16` * `char` * `enum` +* Ordinal subrange types, i.e. `range[-10..10]` -or equivalent. For signed integers the set's base type is defined to be in the -range `0 .. MaxSetElements-1` where `MaxSetElements` is currently always -2^16. +or equivalent. When constructing a set with signed integer literals, the set's +base type is defined to be in the range `0 .. DefaultSetElements-1` where +`DefaultSetElements` is currently always 2^8. The maximum range length for the +base type of a set is `MaxSetElements` which is currently always 2^16. Types +with a bigger range length are coerced into the range `0 .. MaxSetElements-1`. The reason is that sets are implemented as high performance bit vectors. Attempting to declare a set with a larger type will result in an error: |