diff options
author | cooldome <ariabushenko@bk.ru> | 2018-04-29 23:17:07 +0100 |
---|---|---|
committer | cooldome <ariabushenko@bk.ru> | 2018-04-29 23:17:07 +0100 |
commit | b3a80dd2eb775367b52c1aed3f130cbdd51d36aa (patch) | |
tree | c2a25baf17d18d18cf287fbb3f9b3ba45825fe30 | |
parent | 0c9c1c013e9060ccafca9ac4c22031e687b6c984 (diff) | |
download | Nim-b3a80dd2eb775367b52c1aed3f130cbdd51d36aa.tar.gz |
update the doc
-rw-r--r-- | changelog.md | 2 | ||||
-rw-r--r-- | compiler/types.nim | 2 | ||||
-rw-r--r-- | doc/manual.rst | 10 |
3 files changed, 10 insertions, 4 deletions
diff --git a/changelog.md b/changelog.md index 8ac02a388..ddfeb4d36 100644 --- a/changelog.md +++ b/changelog.md @@ -81,6 +81,8 @@ Imported exceptions can be raised and caught just like Nim exceptions. More details in language manual. +- Range float typed, example `range[0.0 .. Inf]`. More details in language manual. + ### Tool changes - ``jsondoc2`` has been renamed ``jsondoc``, similar to how ``doc2`` was renamed diff --git a/compiler/types.nim b/compiler/types.nim index 19e61a332..bb6a132bb 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -704,7 +704,7 @@ proc lastValue*[T:BiggestInt|BiggestFloat](t: PType; fixedUnsigned = false): T = internalError("invalid kind for first(" & $t.kind & ')') result = NaN -proc lastOrd*(t: PType; fixedUnsigned = false): BiggestInt {.inline.}= +proc lastOrd*(t: PType; fixedUnsigned = false): BiggestInt {.inline.} = lastValue[BiggestInt](t, fixedUnsigned) proc lengthOrd*(t: PType): BiggestInt = diff --git a/doc/manual.rst b/doc/manual.rst index 636bf796b..e67d8c0f4 100644 --- a/doc/manual.rst +++ b/doc/manual.rst @@ -741,22 +741,26 @@ For further details, see `Convertible relation Subrange types -------------- -A subrange type is a range of values from an ordinal type (the base +A subrange type is a range of values from an ordinal or float point type (the base type). To define a subrange type, one must specify it's limiting values: the lowest and highest value of the type: .. code-block:: nim type Subrange = range[0..5] + PositiveFloat = range[0.0..Inf] ``Subrange`` is a subrange of an integer which can only hold the values 0 -to 5. Assigning any other value to a variable of type ``Subrange`` is a +to 5. ``PositiveFloat`` defines a subrange of all positive floating point values. +NaN does not belong to any subrange of floating point types. +Assigning any other value to a variable of type ``Subrange`` is a checked runtime error (or static error if it can be statically determined). Assignments from the base type to one of its subrange types (and vice versa) are allowed. -A subrange type has the same size as its base type (``int`` in the example). +A subrange type has the same size as its base type (``int`` in the +Subrange example). Pre-defined floating point types |